-
Notifications
You must be signed in to change notification settings - Fork 829
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
refactor: prepare for private_key_jwt in oauth_client_details #2433
Conversation
BaseClientDetails from spring security oauth2 cannot be changed, therefore more to UaaClientDetails for client details load
We have created an issue in Pivotal Tracker to manage this: https://www.pivotaltracker.com/story/show/185779265 The labels on this github issue will be updated when the story is started. |
@Tallicia @bruce-ricard can you please review this PR ? |
…sue/2235/refactorClient
…sue/2235/refactorClient
…sue/2235/refactorClient
Even if UaaClientDetails is used the addClientDetails method can be used and therefore it does not make sense to have 2 add methods
server/src/main/java/org/cloudfoundry/identity/uaa/client/UaaClientDetails.java
Outdated
Show resolved
Hide resolved
...er/src/main/java/org/cloudfoundry/identity/uaa/zone/MultitenantJdbcClientDetailsService.java
Show resolved
Hide resolved
server/src/test/java/org/cloudfoundry/identity/uaa/client/UaaClientDetailsTest.java
Show resolved
Hide resolved
server/src/test/java/org/cloudfoundry/identity/uaa/client/UaaClientDetailsTest.java
Show resolved
Hide resolved
...c/test/java/org/cloudfoundry/identity/uaa/zone/MultitenantJdbcClientDetailsServiceTests.java
Show resolved
Hide resolved
…sue/2235/refactorClient
#2507) * feature: add runtime support for private_key_jwt client authentication More details in #2449, in #2433 as this PR include #2433. -> because to have smaller review packages Enable the validation of client_assertion as replacement for client_secret Add private_key_jwt as client_auth_method into tokens. * review * fix smells from sonar https://sonarcloud.io/summary/new_code?id=cloudfoundry-identity-parent&pullRequest=2507
BaseClientDetails from spring security oauth2 cannot be changed, therefore move to UaaClientDetails for client details load
Add new column : client_jwt_config
The content of client_jwt_config will be JSON . The PR #2449 will make use of this
The client jwt authentication is based on JsonWebKey trust. See https://datatracker.ietf.org/doc/html/rfc7517
The internal store can contain either.
The idea is, that with such a trust you can now configure in your zone1 a client with jwks_uri pointing to system zone, e.g. http://localhost:8080/uaa/token_keys . Now you define a OIDC identity provider object with jwtClientAuthentication: true and your set in tokenKeyUrl the other jwks_uri, e.g. http://zone.localhost:8080/uaa/token_keys
Now you have jwt based client authentication between zones: uaa and zone.
You can also add other clients in customer zone where client trust is set to http://localhost:8080/uaa/token_keys (system uaa zone) and then you do other calls but the client in the customer zone always trusts your system zone, even if you update your own JWT signing keys.