密钥斗篷:缺少脚本验证器



到目前为止,在我们的系统中,我们一直在使用Key斗篷3.4.3和Script Authenticator身份验证提供程序功能,作为基于浏览器的身份验证的一部分。现在,在升级到Key斗篷4.6.0.Final之后,我们注意到Script Authenticator的选项已从列表中消失。

这个功能在Keycloft 4.5.0.Final中仍然存在。由于Keycloft 4.6.0.Final已经修复了这个功能,我们没有使用4.5.0的选项。

我们使用Script Authenticator功能根据LDAP属性将用户"列入白名单"。现在,由于脚本选项被删除,我们无法再使用Keycloft。

你知道为什么删除了脚本验证器吗?或者可能是它被移到了Keycloft管理控制台的另一个地方?

只是添加一些细节:

  • Keycloft发行说明中没有提及删除此功能
  • Key斗篷4.6.0的Key斗篷文档中仍然提到了脚本验证器
  • 现在在Keycloft问题跟踪器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"在Keycloft 7.0.1.Final 之后就被弃用了

为了获得最佳解决方案,您必须使用JavaScript提供商

首先感谢拥有profile.feature解决方案的人。

第二,我想添加一些输入-如果您使用带有docker的keycloft,您将需要运行带有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开始,v17可能会随着WildFly[JBoss]的弃用而发生变化(dev Roadmap 2021-2022(。

对于bitnami图像,env var应该是KEYCLOAK_EXTRA_ARGS,而不是JAVA_OPTS_APPEND,并且不要在参数周围添加SINGLE/DOUBLE QUOTE!以下是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

最新更新