-
Notifications
You must be signed in to change notification settings - Fork 4
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Add support for proxying introspection requests #140
Comments
In case of error in Keycloak part (f.e. issuer does not exist in OIDC IdPs) should I return only active field with value false? |
What is the vanilla behaviour if you supply an unknown token to the introspection endpoint? |
It returns {active: 'false'}. I keep the same behaviour if I can not get issuer from token. |
Related to caching:
We also need to investigate whether we should validate tokens (i.e. check that the token has been signed by the identified issuer) before proxying the request to the remote introspection endpoint |
We need to decide if we will implement as an extension or keep it separate branch. Although changes are lot, they are not combined with Keycloak code ( only in AccessTokenProvider). So, this is an acceptable solution. For an extension :
Cache implementation - ideally support for cluster - need further investigation and core/ extension must be taken into account. |
First implementation( without cache - validation) is ready in branch 140-introspection and deployed in https://kctestserver.ddns.net/auth. |
|
For the Access Token JWT structure our implementation should comply with https://www.rfc-editor.org/rfc/rfc9068.html#name-data-structure Does the Keycloak and the MITREid Connect implementation already follow that RFC at least for the token expiration information? |
From documentation part '2.2. Data Structure' Keycloak AccessToken class only does not have client_id. It has also auth_time and acr from '2.2.1' and other fields. From my part I use only fields iss and exp for external access tokens. |
Moreover, Keycloak for any token problem including expired token return only
I return the same for expired token. Is it ok? |
Yes this should be sufficient. Do we need some other claim for validating the signature of the token? |
No. Taken into account that we agree that Keycloak will only check token expiration. |
Main implementation is done. |
Extend Keycloak introspection endpoint with support for checking the validity and signatures of OAuth tokens for trusted OAuth2 authorisation servers.
Keycloak will only introspect JWT access tokens that contain the
iss
claim.It assumes that Keycoak is registered as a client at one (or more) trusted OAuth authorization servers, and is used by client applications as a gateway for token validation and introspection.
Keycloak will perform local JWT validation checks and leverage the introspection endpoints at trusted AS to inspect a submitted token.
The result of a token introspection will be cached, if caching is enabled.
The text was updated successfully, but these errors were encountered: