Class ScriptBasedAuthenticator
java.lang.Object
org.keycloak.authentication.authenticators.browser.ScriptBasedAuthenticator
- All Implemented Interfaces:
Authenticator,Provider
An
Authenticator that can execute a configured script during authentication flow.
Scripts must at least provide one of the following functions:
authenticate(..)which is called fromAuthenticator.authenticate(AuthenticationFlowContext)action(..)which is called fromAuthenticator.action(AuthenticationFlowContext)
Custom Authenticator's should at least provide the authenticate(..) function.
The following script Bindings are available for convenient use within script code.
scripttheScriptModelto access script metadatarealmtheRealmModeluserthe currentUserModelsessionthe activeKeycloakSessionauthenticationSessionthe currentAuthenticationSessionModelhttpRequestthe currentHttpRequestLOGaLoggerscoped toScriptBasedAuthenticator
Note that the user variable is only defined when the user was identified by a preceding
authentication step, e.g. by the UsernamePasswordForm authenticator.
Additional context information can be extracted from the context argument passed to the authenticate(context)
or action(context) function.
An example ScriptBasedAuthenticator definition could look as follows:
AuthenticationFlowError = Java.type("org.keycloak.authentication.AuthenticationFlowError");
function authenticate(context) {
var username = user ? user.username : "anonymous";
LOG.info(script.name + " --> trace auth for: " + username);
if ( username === "tester"
&& user.getAttribute("someAttribute")
&& user.getAttribute("someAttribute").contains("someValue")) {
context.failure(AuthenticationFlowError.INVALID_USER);
return;
}
context.success();
}
- Author:
- Thomas Darimont
-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionvoidaction(AuthenticationFlowContext context) voidauthenticate(AuthenticationFlowContext context) voidclose()booleanconfiguredFor(KeycloakSession session, RealmModel realm, UserModel user) protected AuthenticatorConfigModelbooleanvoidsetRequiredActions(KeycloakSession session, RealmModel realm, UserModel user) Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitMethods inherited from interface org.keycloak.authentication.Authenticator
areRequiredActionsEnabled, getRequiredActions
-
Constructor Details
-
ScriptBasedAuthenticator
public ScriptBasedAuthenticator()
-
-
Method Details
-
authenticate
- Specified by:
authenticatein interfaceAuthenticator
-
action
- Specified by:
actionin interfaceAuthenticator
-
getAuthenticatorConfig
-
requiresUser
public boolean requiresUser()- Specified by:
requiresUserin interfaceAuthenticator
-
configuredFor
- Specified by:
configuredForin interfaceAuthenticator
-
setRequiredActions
- Specified by:
setRequiredActionsin interfaceAuthenticator
-
close
public void close()
-