6.4.3. 使用要部署的脚本创建 JAR
JAR 文件是带有 .jar 扩展名的常规 ZIP 文件。
为了让脚本可用于红帽构建的 Keycloak,您需要将它们部署到服务器中。为此,您应该创建一个具有以下结构的 JAR 文件:
META-INF/keycloak-scripts.json
my-script-authenticator.js
my-script-policy.js
my-script-mapper.js
META-INF/keycloak-scripts.json 是一个文件描述符,提供有关您要部署的脚本的元数据信息。它是具有以下结构的 JSON 文件:
{
"authenticators": [
{
"name": "My Authenticator",
"fileName": "my-script-authenticator.js",
"description": "My Authenticator from a JS file"
}
],
"policies": [
{
"name": "My Policy",
"fileName": "my-script-policy.js",
"description": "My Policy from a JS file"
}
],
"mappers": [
{
"name": "My Mapper",
"fileName": "my-script-mapper.js",
"description": "My Mapper from a JS file"
}
],
"saml-mappers": [
{
"name": "My Mapper",
"fileName": "my-script-mapper.js",
"description": "My Mapper from a JS file"
}
]
}
此文件应引用您要部署的不同类型的脚本供应商:
authenticators用于 OpenID Connect 脚本身份验证器。您可以在同一 JAR 文件中具有一个或多个验证器
policies对于使用红帽构建的 Keycloak 授权服务时的 JavaScript 策略。在同一 JAR 文件中可以拥有一个或多个策略
mappers用于 OpenID Connect 脚本协议映射程序。您可以在同一 JAR 文件中具有一个或多个映射程序
saml-mappers对于 SAML 脚本协议映射程序。您可以在同一 JAR 文件中具有一个或多个映射程序
对于 JAR 文件中的每个脚本文件,您需要在 META-INF/keycloak-scripts.json 中对应的条目,用于将脚本文件映射到特定的提供程序类型。为此,您应该为每个条目提供以下属性:
name通过红帽构建的 Keycloak 管理控制台来显示脚本的友好名称。如果没有提供,则使用脚本文件的名称替代
description更好地描述脚本文件计划的可选文本
fileName脚本文件的名称。此属性 是必需的,应映射到 JAR 中的文件。