Package org.keycloak.broker.spiffe
Class SpiffeIdentityProvider
java.lang.Object
org.keycloak.broker.spiffe.SpiffeIdentityProvider
- All Implemented Interfaces:
ClientAssertionIdentityProvider<SpiffeIdentityProviderConfig>,IdentityProvider<SpiffeIdentityProviderConfig>,Provider
public class SpiffeIdentityProvider
extends Object
implements ClientAssertionIdentityProvider<SpiffeIdentityProviderConfig>
Implementation for https://datatracker.ietf.org/doc/draft-schwenkschuster-oauth-spiffe-client-auth/
Main differences for SPIFFE JWT SVIDs and regular client assertions:
jwt-spiffeclient assertion typeissclaim is optional, uses SPIFFE IDs, which includes trust domain insteadjticlaim is optional, and SPIFFE vendors re-use/cache tokenssubis a SPIFFE ID with the syntaxspiffe://trust-domain/workload-identity- Keys are fetched from a SPIFFE bundle endpoint, where the JWKS has additional SPIFFE specific fields (
spiffe_sequenceandspiffe_refresh_hint, the JWK does not set thealg>
-
Constructor Summary
ConstructorsConstructorDescriptionSpiffeIdentityProvider(KeycloakSession session, SpiffeIdentityProviderConfig config) -
Method Summary
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitMethods inherited from interface org.keycloak.broker.provider.IdentityProvider
export, isMapperSupported, reloadKeys
-
Constructor Details
-
SpiffeIdentityProvider
-
-
Method Details
-
getConfig
- Specified by:
getConfigin interfaceIdentityProvider<SpiffeIdentityProviderConfig>
-
verifyClientAssertion
- Specified by:
verifyClientAssertionin interfaceClientAssertionIdentityProvider<SpiffeIdentityProviderConfig>- Throws:
Exception
-
close
public void close()
-