DependencyTrack / DependencyTrack/dependency-track
Provide Support for Secure API Authentication
- Dominant language
- Java
- Stars
- 4.2k
- Forks
- 811
- Avg merge
- 8h 39m
- Merged PRs (30d)
- 237
Description
### Current Behavior
Currently, we are utilising API keys, which are considered to have lower security compared to other secure API authentication methods.
### Proposed Behavior
We should allow the external and centralised Authorisation Server (e.g., Keycloak) to handle the authentication and authorisation of clients in addition to API keys; it should be either API keys or centralised authentication.
So in practise, client will first authenticate with Authorisation Server using secure authentication mechanism like (OAuth 2.0 Client Credential Grant with Private Key JWT, OAuth 2.0 Client Credential Grant with Private Key JWT+DPoP, etc. ) and Keycloak will issue an access_token for the client, the client will use short lived access_token to call DT API endpoints. DT API will validate if the token issued by the trusted Authorisation server or not.
To enable this I think the DT should allow the JWKS endpoint for the Authorisation Server as a configuration and option to enable external secure API Auth.
### Checklist
- [x] I have read and understand the [contributing guidelines](https://github.com/DependencyTrack/dependency-track/blob/master/CONTRIBUTING.md#filing-issues)
- [x] I have checked the [existing issues](https://github.com/DependencyTrack/dependency-track/issues) for whether this enhancement was already requested
Contributor guide
Assessment
This issue has not been assessed yet.