【问题标题】:Keycloak: Script Authenticator missing?Keycloak:缺少脚本验证器?
【发布时间】:2019-04-22 17:28:11
【问题描述】:
到目前为止,在我们的系统中,我们一直使用 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 功能根据 LDAP 属性将我们的用户“列入白名单”。现在由于删除了脚本选项,我们不再能够使用 Keycloak。
任何想法为什么脚本验证器已被删除?还是它已被移到 Keycloak 管理控制台中的另一个位置?
只是补充一些细节:
【问题讨论】:
标签:
javascript
authentication
keycloak
【解决方案1】:
您可以通过以下方式启动服务器来启用此功能:
-Dkeycloak.profile.feature.scripts=enabled
或者您可以在profile.properties 文件(在配置文件夹中)中永久设置此设置,方法是添加:
feature.scripts=enabled
【解决方案2】:
您还需要启用 upload_scripts 为:
-Dkeycloak.profile.feature.scripts=enabled -Dkeycloak.profile.feature.upload_scripts=enabled
但自 Keycloak 7.0.1.Final 起,此功能“upload_scripts”已被弃用
要获得最佳解决方案,您必须使用JavaScript Providers
【解决方案3】:
首先感谢提供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 的内容可能会发生变化。