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