假设我在 Keycloak 中使用一个领域
mycomp
来处理所有用户(+ master
领域用于 Keycloak 超级管理员)。
我的角色是客户支持(CS),应该能够查看用户并管理他们的基本数据,如姓名、电子邮件、密码重置等。
我可以通过 3 种方式向任何用户授予
realm-management
权限,例如 manage-users
或 view-users
:
问题在于,授予
manage-users
权限 CS 最终能够管理角色和组,因此能够授予其他用户管理权限。这对我的配置无效 - 这是某个更高级别管理员的角色。
如何授予部分用户查看和管理用户基本数据的权限,而又不允许他们管理角色?
所以最终我终于找到了一个可行的解决方案。
问题是角色
manage-users
不能被政策覆盖。
在 Keycloak (https://issues.redhat.com/browse/KEYCLOAK-18151) 的 Pedro Igor Silva 的帮助下,我成功地设置了满足用例的配置。
启用 Keycloak 预览功能
admin_fine_grained_authz
后,我创建了全局复合 Role user-managers
并从 query-users
客户端授予了它 realm-management
Role。然后,我创建了 Policy,当用户具有
manage
角色时,它会授予 Users
资源上的 user-manager
权限。
效果很好
您可以分享策略类型和配置+权限吗