DependencyTrack / DependencyTrack/dependency-track

Provide Support for Secure API Authentication

Open
#4,249 2 comments 3 reactions 1 assignee Claimed by @dhfherna View on GitHub
enhancement help wanted p2 technical debt
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

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.