dadrus / heimdall

A cloud native Identity Aware Proxy and Access Control Decision service
https://dadrus.github.io/heimdall/
Apache License 2.0
136 stars 15 forks source link

Finalizer supporting OAuth 2.0 Token Exchange (RFC 8693) #1188

Open dadrus opened 9 months ago

dadrus commented 9 months ago

Preflight checklist

Describe the background of your feature request

One of the options to pass the information about the authenticated and authorized subject to the upstream service availablel today is a built-in Security Token Service (STS), implemented by the jwt finalizer.

It allows exchanging any authentication information used by the client (tokens, cookies, etc) for a highly customizable JWT that the heimdall instance itself signs and provides the keys via the jwks endpoint to verify. Even that approach is useful for implementing edge-level access control architecture, it leads to transparency loss in the identity management flow as heimdall becomes a token issuer authority, which might be challenging or even unwanted in particular setups.

Describe your idea

To still have the above written functionality without heimdall being a central actor in the identity management flow, a new finalizer supporting the OAuth 2.0 Token Exchange protocol (RFC 8693) would be helpful. The finalizer type could be named e.g. oauth2_token_exchange.

Pros & Cons to be considered:

Are there any workarounds or alternatives?

No

Version

v0.13.0-alpha

Additional Context

No response

dadrus commented 2 months ago

There is an RFC draft for so called transactional tokens which closes the first con written in the description as contextual information can be passed down to the new token.