Class WebAuthnAuthenticator
- java.lang.Object
-
- org.keycloak.authentication.authenticators.browser.WebAuthnAuthenticator
-
- All Implemented Interfaces:
Authenticator,CredentialValidator<WebAuthnCredentialProvider>,Provider
- Direct Known Subclasses:
WebAuthnPasswordlessAuthenticator
public class WebAuthnAuthenticator extends Object implements Authenticator, CredentialValidator<WebAuthnCredentialProvider>
Authenticator for WebAuthn authentication, which will be typically used when WebAuthn is used as second factor.
-
-
Constructor Summary
Constructors Constructor Description WebAuthnAuthenticator(KeycloakSession session)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description voidaction(AuthenticationFlowContext context)Called from a form action invocation.voidauthenticate(AuthenticationFlowContext context)Initial call for the authenticator.voidclose()booleanconfiguredFor(KeycloakSession session, RealmModel realm, UserModel user)Is this authenticator configured for this user.WebAuthnCredentialProvidergetCredentialProvider(KeycloakSession session)protected StringgetCredentialType()List<RequiredActionFactory>getRequiredActions(KeycloakSession session)Overwrite this if the authenticator is associated withprotected StringgetRpID(AuthenticationFlowContext context)protected WebAuthnPolicygetWebAuthnPolicy(AuthenticationFlowContext context)booleanrequiresUser()Does this authenticator require that the user has already been identified? That AuthenticatorContext.getUser() is not null?voidsetRequiredActions(KeycloakSession session, RealmModel realm, UserModel user)Set actions to configure authenticatorprotected booleanshouldDisplayAuthenticators(AuthenticationFlowContext context)-
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
-
Methods inherited from interface org.keycloak.authentication.Authenticator
areRequiredActionsEnabled
-
Methods inherited from interface org.keycloak.authentication.CredentialValidator
getCredentials, getType
-
-
-
-
Constructor Detail
-
WebAuthnAuthenticator
public WebAuthnAuthenticator(KeycloakSession session)
-
-
Method Detail
-
authenticate
public void authenticate(AuthenticationFlowContext context)
Description copied from interface:AuthenticatorInitial call for the authenticator. This method should check the current HTTP request to determine if the request satifies the Authenticator's requirements. If it doesn't, it should send back a challenge response by calling the AuthenticationFlowContext.challenge(Response). If this challenge is a authentication, the action URL of the form must point to /realms/{realm}/login-actions/authenticate?code={session-code}&execution={executionId} or /realms/{realm}/login-actions/registration?code={session-code}&execution={executionId} {session-code} pertains to the code generated from AuthenticationFlowContext.generateAccessCode(). The {executionId} pertains to the AuthenticationExecutionModel.getId() value obtained from AuthenticationFlowContext.getExecution(). The action URL will invoke the action() method described below.- Specified by:
authenticatein interfaceAuthenticator
-
getWebAuthnPolicy
protected WebAuthnPolicy getWebAuthnPolicy(AuthenticationFlowContext context)
-
getRpID
protected String getRpID(AuthenticationFlowContext context)
-
getCredentialType
protected String getCredentialType()
-
shouldDisplayAuthenticators
protected boolean shouldDisplayAuthenticators(AuthenticationFlowContext context)
-
action
public void action(AuthenticationFlowContext context)
Description copied from interface:AuthenticatorCalled from a form action invocation.- Specified by:
actionin interfaceAuthenticator
-
requiresUser
public boolean requiresUser()
Description copied from interface:AuthenticatorDoes this authenticator require that the user has already been identified? That AuthenticatorContext.getUser() is not null?- Specified by:
requiresUserin interfaceAuthenticator- Returns:
-
configuredFor
public boolean configuredFor(KeycloakSession session, RealmModel realm, UserModel user)
Description copied from interface:AuthenticatorIs this authenticator configured for this user.- Specified by:
configuredForin interfaceAuthenticator- Returns:
-
setRequiredActions
public void setRequiredActions(KeycloakSession session, RealmModel realm, UserModel user)
Description copied from interface:AuthenticatorSet actions to configure authenticator- Specified by:
setRequiredActionsin interfaceAuthenticator
-
getRequiredActions
public List<RequiredActionFactory> getRequiredActions(KeycloakSession session)
Description copied from interface:AuthenticatorOverwrite this if the authenticator is associated with- Specified by:
getRequiredActionsin interfaceAuthenticator- Returns:
-
getCredentialProvider
public WebAuthnCredentialProvider getCredentialProvider(KeycloakSession session)
- Specified by:
getCredentialProviderin interfaceCredentialValidator<WebAuthnCredentialProvider>
-
-