Keycloak:缺少脚本验证器?
Keycloak: Script Authenticator missing?
到目前为止,在我们的系统中,我们一直在使用 Keycloak 3.4.3 和 Script Authenticator 身份验证提供程序功能作为基于浏览器的身份验证的一部分。现在,在升级到 Keycloak 4.6.0.Final 后,我们注意到 Script Authenticator
的选项已从列表中消失。
此功能在 Keycloak 4.5 中仍然存在。0.Final。由于 Keycloak 4.6.0.Final 中已修复的功能,我们无法选择使用 4.5.0.
我们使用 Script Authenticator 功能 "whitelist" 我们的用户基于 LDAP 属性。现在,由于删除了脚本选项,我们无法再使用 Keycloak。
知道为什么脚本验证器被删除了吗?或者它可能已经被移动到 Keycloak 管理控制台中的另一个地方?
只是添加一些细节:
- Keycloak release notes
中没有提及删除此功能
- 对于 Keycloak 4.6.0
,the Keycloak documentation 中仍然提到了脚本验证器
- 现在在 Keycloak 问题跟踪器中也报告了一个问题 KEYCLOAK-8872。
您可以通过以下方式启动服务器来启用此功能:
-Dkeycloak.profile.feature.scripts=enabled
或者您可以通过添加以下内容在 profile.properties
文件(在配置文件夹中)中永久设置:
feature.scripts=enabled
您还需要启用 upload_scripts 作为 :
-Dkeycloak.profile.feature.scripts=enabled -Dkeycloak.profile.feature.upload_scripts=enabled
但此功能 "upload_scripts" 自 Keycloak 7.0 以来已弃用。1.Final
要获得最佳解决方案,您必须使用 JavaScript Providers
首先感谢提供 profile.feature
解决方案的人。
其次,我想添加一些输入 - 如果您将 keycloak 与 docker 一起使用,您将需要 运行 带有 java_opts
参数的容器,这样您就可以这样做:
-e JAVA_OPTS_APPEND="-Dkeycloak.profile.feature.scripts=enabled
-Dkeycloak.profile.feature.upload_scripts=enabled -server -Xms64m -Xmx512m
-XX:MetaspaceSize=96M -XX:MaxMetaspaceSize=256m -Djava.net.preferIPv4Stack=true
-Djboss.modules.system.pkgs=org.jboss.byteman -Djava.awt.headless=true"
请注意,您还需要其他参数,例如 -server
、-Xms64m
等(您可以根据需要进行调整)。
注意: 从 v16 开始,随着 WildFly [JBoss] 的弃用 (dev Roadmap 2021-2022),v17 的情况可能会发生变化 (dev Roadmap 2021-2022)。
对于 bitnami 图像,环境变量应该是 KEYCLOAK_EXTRA_ARGS
,而不是 JAVA_OPTS_APPEND
并且 不要添加 SINGLE/DOUBLE 引用参数 !这是 docker-compose.yaml
中的一个片段
keycloak:
image: docker.io/bitnami/keycloak:16.1.0-debian-10-r0
environment:
- KEYCLOAK_EXTRA_ARGS=-Dkeycloak.profile.feature.scripts=enabled -Dkeycloak.profile.feature.upload_scripts=enabled -Dkeycloak.profile.feature.token_exchange=enabled -Dnashorn.args=--no-deprecation-warning
到目前为止,在我们的系统中,我们一直在使用 Keycloak 3.4.3 和 Script Authenticator 身份验证提供程序功能作为基于浏览器的身份验证的一部分。现在,在升级到 Keycloak 4.6.0.Final 后,我们注意到 Script Authenticator
的选项已从列表中消失。
此功能在 Keycloak 4.5 中仍然存在。0.Final。由于 Keycloak 4.6.0.Final 中已修复的功能,我们无法选择使用 4.5.0.
我们使用 Script Authenticator 功能 "whitelist" 我们的用户基于 LDAP 属性。现在,由于删除了脚本选项,我们无法再使用 Keycloak。
知道为什么脚本验证器被删除了吗?或者它可能已经被移动到 Keycloak 管理控制台中的另一个地方?
只是添加一些细节:
- Keycloak release notes 中没有提及删除此功能
- 对于 Keycloak 4.6.0 ,the Keycloak documentation 中仍然提到了脚本验证器
- 现在在 Keycloak 问题跟踪器中也报告了一个问题 KEYCLOAK-8872。
您可以通过以下方式启动服务器来启用此功能:
-Dkeycloak.profile.feature.scripts=enabled
或者您可以通过添加以下内容在 profile.properties
文件(在配置文件夹中)中永久设置:
feature.scripts=enabled
您还需要启用 upload_scripts 作为 :
-Dkeycloak.profile.feature.scripts=enabled -Dkeycloak.profile.feature.upload_scripts=enabled
但此功能 "upload_scripts" 自 Keycloak 7.0 以来已弃用。1.Final
要获得最佳解决方案,您必须使用 JavaScript Providers
首先感谢提供 profile.feature
解决方案的人。
其次,我想添加一些输入 - 如果您将 keycloak 与 docker 一起使用,您将需要 运行 带有 java_opts
参数的容器,这样您就可以这样做:
-e JAVA_OPTS_APPEND="-Dkeycloak.profile.feature.scripts=enabled
-Dkeycloak.profile.feature.upload_scripts=enabled -server -Xms64m -Xmx512m
-XX:MetaspaceSize=96M -XX:MaxMetaspaceSize=256m -Djava.net.preferIPv4Stack=true
-Djboss.modules.system.pkgs=org.jboss.byteman -Djava.awt.headless=true"
请注意,您还需要其他参数,例如 -server
、-Xms64m
等(您可以根据需要进行调整)。
注意: 从 v16 开始,随着 WildFly [JBoss] 的弃用 (dev Roadmap 2021-2022),v17 的情况可能会发生变化 (dev Roadmap 2021-2022)。
对于 bitnami 图像,环境变量应该是 KEYCLOAK_EXTRA_ARGS
,而不是 JAVA_OPTS_APPEND
并且 不要添加 SINGLE/DOUBLE 引用参数 !这是 docker-compose.yaml
keycloak:
image: docker.io/bitnami/keycloak:16.1.0-debian-10-r0
environment:
- KEYCLOAK_EXTRA_ARGS=-Dkeycloak.profile.feature.scripts=enabled -Dkeycloak.profile.feature.upload_scripts=enabled -Dkeycloak.profile.feature.token_exchange=enabled -Dnashorn.args=--no-deprecation-warning