6.5. JavaScript 供应商
Red Hat Single Sign-On 能够在运行时执行脚本的功能,以便管理员能够自定义特定的功能:
- authenticator
- JavaScript Policy
- OpenID Connect 协议映射程序
6.5.1. authenticator
身份验证脚本必须至少提供以下功能之一:身份验证 (..)
来自 Authenticator#authenticate (AuthenticationFlowContext)
action (..)
,它从 Authenticator#action (AuthenticationFlowContext)
操作中调用。
自定义 授权器
至少应提供 authenticate (..)
函数。您可以使用代码中的 javax.script.Bindings
脚本。
script
-
用于访问脚本元数据的
ScriptModel
realm
-
RealmModel
user
-
当前
UserModel
会话
-
active
KeycloakSession
authenticationSession
-
当前
AuthenticationSessionModel
httpRequest
-
当前
org.jboss.resteasy.spi.HttpRequest
LOG
-
org.jboss.logging.Logger
限定于基于脚本的Authenticator
注意
您可以从传递给 验证(context)
功能的上下文参数中提取其他上下文信息。
操作(
context
)
AuthenticationFlowError = Java.type("org.keycloak.authentication.AuthenticationFlowError"); function authenticate(context) { LOG.info(script.name + " --> trace auth for: " + user.username); if ( user.username === "tester" && user.getAttribute("someAttribute") && user.getAttribute("someAttribute").contains("someValue")) { context.failure(AuthenticationFlowError.INVALID_USER); return; } context.success(); }