启用 Keycloak 只读用户属性时出现问题

Rob*_*bin 5 docker keycloak

我尝试按照文档在 Keycloak 中启用只读用户属性:https: //www.keycloak.org/docs/latest/server_admin/ 但是,记录的配置实际上并不能阻止用户更改其属性。

将 Keycloak 15.0.0 与 docker hub 中的常规 Docker 映像结合使用创建了一个 .cli 文件并将其添加到我的 Docker 映像中,该映像由

FROM jboss/keycloak:15.0.0
ADD RESTRICT_USER_ATTRIBUTES.cli /opt/jboss/startup-scripts/
Run Code Online (Sandbox Code Playgroud)

包含 RESTRICT_USER_ATTRIBUTES.cli 的内容:

embed-server --server-config=standalone-ha.xml --std-out=echo

batch

/subsystem=keycloak-server/spi=userProfile/:add
/subsystem=keycloak-server/spi=userProfile/provider=legacy-user-profile/:add(properties={},enabled=true)
/subsystem=keycloak-server/spi=userProfile/provider=legacy-user-profile/:map-put(name=properties,key=read-only-attributes,value=[myUserAttribute])

run-batch

stop-embedded-server
Run Code Online (Sandbox Code Playgroud)

根据日志处理.cli 文件。我可以执行 docker 实例并使用 jboss-cli.sh 检查配置。但最终用户可以使用 Postman 或其他工具自由编辑 myUserAttribute。

我在这里做错了什么?

小智 4

我刚刚遇到了这个问题,而且文档似乎已经过时了。他们更改了提供商名称,可能是在 15.0.0 中。

尝试将 cli 脚本更改为:

# ...

/subsystem=keycloak-server/spi=userProfile/:add
/subsystem=keycloak-server/spi=userProfile/provider=declarative-user-profile/:add(properties={},enabled=true)
/subsystem=keycloak-server/spi=userProfile/provider=declarative-user-profile/:map-put(name=properties,key=read-only-attributes,value=[myUserAttribute])

# ...

Run Code Online (Sandbox Code Playgroud)