Class SAMLIdentityProvider

java.lang.Object
org.keycloak.broker.provider.AbstractIdentityProvider<SAMLIdentityProviderConfig>
org.keycloak.broker.saml.SAMLIdentityProvider
All Implemented Interfaces:
org.keycloak.broker.provider.IdentityProvider<SAMLIdentityProviderConfig>, org.keycloak.broker.provider.UserAuthenticationIdentityProvider<SAMLIdentityProviderConfig>, org.keycloak.provider.Provider

public class SAMLIdentityProvider extends org.keycloak.broker.provider.AbstractIdentityProvider<SAMLIdentityProviderConfig>
Author:
Pedro Igor
  • Nested Class Summary

    Nested classes/interfaces inherited from interface org.keycloak.broker.provider.UserAuthenticationIdentityProvider

    org.keycloak.broker.provider.UserAuthenticationIdentityProvider.AuthenticationCallback
  • Field Summary

    Fields
    Modifier and Type
    Field
    Description
    protected static final org.jboss.logging.Logger
     

    Fields inherited from class org.keycloak.broker.provider.AbstractIdentityProvider

    ACCOUNT_LINK_URL, BROKER_REGISTERED_NEW_USER, session, UPDATE_PROFILE_EMAIL_CHANGED, UPDATE_PROFILE_USERNAME_CHANGED

    Fields inherited from interface org.keycloak.broker.provider.UserAuthenticationIdentityProvider

    EXTERNAL_IDENTITY_PROVIDER, FEDERATED_ACCESS_TOKEN
  • Constructor Summary

    Constructors
    Constructor
    Description
    SAMLIdentityProvider(org.keycloak.models.KeycloakSession session, SAMLIdentityProviderConfig config, org.keycloak.saml.validators.DestinationValidator destinationValidator)
     
  • Method Summary

    Modifier and Type
    Method
    Description
    void
    authenticationFinished(org.keycloak.sessions.AuthenticationSessionModel authSession, org.keycloak.broker.provider.BrokeredIdentityContext context)
     
    void
    backchannelLogout(org.keycloak.models.KeycloakSession session, org.keycloak.models.UserSessionModel userSession, jakarta.ws.rs.core.UriInfo uriInfo, org.keycloak.models.RealmModel realm)
     
    protected org.keycloak.dom.saml.v2.protocol.ArtifactResolveType
    buildArtifactResolveRequest(jakarta.ws.rs.core.UriInfo uriInfo, org.keycloak.models.RealmModel realm, String artifactServiceUrl, String artifact, org.keycloak.saml.SamlProtocolExtensionsAwareBuilder.NodeGenerator... extensions)
     
    protected org.keycloak.dom.saml.v2.protocol.LogoutRequestType
    buildLogoutRequest(org.keycloak.models.UserSessionModel userSession, jakarta.ws.rs.core.UriInfo uriInfo, org.keycloak.models.RealmModel realm, String singleLogoutServiceUrl, org.keycloak.saml.SamlProtocolExtensionsAwareBuilder.NodeGenerator... extensions)
     
    callback(org.keycloak.models.RealmModel realm, org.keycloak.broker.provider.UserAuthenticationIdentityProvider.AuthenticationCallback callback, org.keycloak.events.EventBuilder event)
     
    jakarta.ws.rs.core.Response
    export(jakarta.ws.rs.core.UriInfo uriInfo, org.keycloak.models.RealmModel realm, String format)
     
    protected org.keycloak.dom.saml.v2.metadata.EntityDescriptorType
    getEntityDescriptor(jakarta.ws.rs.core.UriInfo uriInfo, org.keycloak.models.RealmModel realm, String format)
     
    org.keycloak.broker.provider.IdentityProviderDataMarshaller
     
    org.keycloak.saml.SignatureAlgorithm
     
    jakarta.ws.rs.core.Response
    keycloakInitiatedBrowserLogout(org.keycloak.models.KeycloakSession session, org.keycloak.models.UserSessionModel userSession, jakarta.ws.rs.core.UriInfo uriInfo, org.keycloak.models.RealmModel realm)
     
    jakarta.ws.rs.core.Response
    performLogin(org.keycloak.broker.provider.AuthenticationRequest request)
     
    boolean
     
    org.keycloak.saml.processing.core.saml.v2.common.SAMLDocumentHolder
    resolveArtifact(org.keycloak.models.KeycloakSession session, jakarta.ws.rs.core.UriInfo uriInfo, org.keycloak.models.RealmModel realm, String relayState, String samlArt)
     
    jakarta.ws.rs.core.Response
    retrieveToken(org.keycloak.models.KeycloakSession session, org.keycloak.models.FederatedIdentityModel identity)
     
    jakarta.ws.rs.core.Response
    retrieveToken(org.keycloak.models.KeycloakSession session, org.keycloak.models.FederatedIdentityModel identity, org.keycloak.models.UserSessionModel userSession, org.keycloak.models.UserModel user)
     
    boolean
     

    Methods inherited from class org.keycloak.broker.provider.AbstractIdentityProvider

    buildTokenResponse, close, exchangeErrorResponse, exchangeNotLinked, exchangeNotLinkedNoStore, exchangeNotSupported, exchangeTokenExpired, exchangeUnsupportedRequiredType, getConfig, getFederatedAccessToken, getLinkingUrl, importNewUser, preprocessFederatedIdentity, setEmailVerified, updateBrokeredUser, updateEmail

    Methods inherited from class java.lang.Object

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait

    Methods inherited from interface org.keycloak.broker.provider.IdentityProvider

    isMapperSupported, isType
  • Field Details

    • logger

      protected static final org.jboss.logging.Logger logger
  • Constructor Details

    • SAMLIdentityProvider

      public SAMLIdentityProvider(org.keycloak.models.KeycloakSession session, SAMLIdentityProviderConfig config, org.keycloak.saml.validators.DestinationValidator destinationValidator)
  • Method Details

    • callback

      public Object callback(org.keycloak.models.RealmModel realm, org.keycloak.broker.provider.UserAuthenticationIdentityProvider.AuthenticationCallback callback, org.keycloak.events.EventBuilder event)
      Specified by:
      callback in interface org.keycloak.broker.provider.UserAuthenticationIdentityProvider<SAMLIdentityProviderConfig>
      Overrides:
      callback in class org.keycloak.broker.provider.AbstractIdentityProvider<SAMLIdentityProviderConfig>
    • performLogin

      public jakarta.ws.rs.core.Response performLogin(org.keycloak.broker.provider.AuthenticationRequest request)
      Specified by:
      performLogin in interface org.keycloak.broker.provider.UserAuthenticationIdentityProvider<SAMLIdentityProviderConfig>
      Overrides:
      performLogin in class org.keycloak.broker.provider.AbstractIdentityProvider<SAMLIdentityProviderConfig>
    • authenticationFinished

      public void authenticationFinished(org.keycloak.sessions.AuthenticationSessionModel authSession, org.keycloak.broker.provider.BrokeredIdentityContext context)
      Specified by:
      authenticationFinished in interface org.keycloak.broker.provider.UserAuthenticationIdentityProvider<SAMLIdentityProviderConfig>
      Overrides:
      authenticationFinished in class org.keycloak.broker.provider.AbstractIdentityProvider<SAMLIdentityProviderConfig>
    • retrieveToken

      public jakarta.ws.rs.core.Response retrieveToken(org.keycloak.models.KeycloakSession session, org.keycloak.models.FederatedIdentityModel identity)
    • retrieveToken

      public jakarta.ws.rs.core.Response retrieveToken(org.keycloak.models.KeycloakSession session, org.keycloak.models.FederatedIdentityModel identity, org.keycloak.models.UserSessionModel userSession, org.keycloak.models.UserModel user)
    • backchannelLogout

      public void backchannelLogout(org.keycloak.models.KeycloakSession session, org.keycloak.models.UserSessionModel userSession, jakarta.ws.rs.core.UriInfo uriInfo, org.keycloak.models.RealmModel realm)
      Specified by:
      backchannelLogout in interface org.keycloak.broker.provider.UserAuthenticationIdentityProvider<SAMLIdentityProviderConfig>
      Overrides:
      backchannelLogout in class org.keycloak.broker.provider.AbstractIdentityProvider<SAMLIdentityProviderConfig>
    • keycloakInitiatedBrowserLogout

      public jakarta.ws.rs.core.Response keycloakInitiatedBrowserLogout(org.keycloak.models.KeycloakSession session, org.keycloak.models.UserSessionModel userSession, jakarta.ws.rs.core.UriInfo uriInfo, org.keycloak.models.RealmModel realm)
      Specified by:
      keycloakInitiatedBrowserLogout in interface org.keycloak.broker.provider.UserAuthenticationIdentityProvider<SAMLIdentityProviderConfig>
      Overrides:
      keycloakInitiatedBrowserLogout in class org.keycloak.broker.provider.AbstractIdentityProvider<SAMLIdentityProviderConfig>
    • buildLogoutRequest

      protected org.keycloak.dom.saml.v2.protocol.LogoutRequestType buildLogoutRequest(org.keycloak.models.UserSessionModel userSession, jakarta.ws.rs.core.UriInfo uriInfo, org.keycloak.models.RealmModel realm, String singleLogoutServiceUrl, org.keycloak.saml.SamlProtocolExtensionsAwareBuilder.NodeGenerator... extensions) throws org.keycloak.saml.common.exceptions.ConfigurationException
      Throws:
      org.keycloak.saml.common.exceptions.ConfigurationException
    • getEntityDescriptor

      protected org.keycloak.dom.saml.v2.metadata.EntityDescriptorType getEntityDescriptor(jakarta.ws.rs.core.UriInfo uriInfo, org.keycloak.models.RealmModel realm, String format)
    • export

      public jakarta.ws.rs.core.Response export(jakarta.ws.rs.core.UriInfo uriInfo, org.keycloak.models.RealmModel realm, String format)
    • getSignatureAlgorithm

      public org.keycloak.saml.SignatureAlgorithm getSignatureAlgorithm()
    • getMarshaller

      public org.keycloak.broker.provider.IdentityProviderDataMarshaller getMarshaller()
      Specified by:
      getMarshaller in interface org.keycloak.broker.provider.UserAuthenticationIdentityProvider<SAMLIdentityProviderConfig>
      Overrides:
      getMarshaller in class org.keycloak.broker.provider.AbstractIdentityProvider<SAMLIdentityProviderConfig>
    • reloadKeys

      public boolean reloadKeys()
    • supportsLongStateParameter

      public boolean supportsLongStateParameter()
    • resolveArtifact

      public org.keycloak.saml.processing.core.saml.v2.common.SAMLDocumentHolder resolveArtifact(org.keycloak.models.KeycloakSession session, jakarta.ws.rs.core.UriInfo uriInfo, org.keycloak.models.RealmModel realm, String relayState, String samlArt)
    • buildArtifactResolveRequest

      protected org.keycloak.dom.saml.v2.protocol.ArtifactResolveType buildArtifactResolveRequest(jakarta.ws.rs.core.UriInfo uriInfo, org.keycloak.models.RealmModel realm, String artifactServiceUrl, String artifact, org.keycloak.saml.SamlProtocolExtensionsAwareBuilder.NodeGenerator... extensions) throws org.keycloak.saml.common.exceptions.ConfigurationException
      Throws:
      org.keycloak.saml.common.exceptions.ConfigurationException