如何在Keycloak中授予部分用户部分用户管理权限?

nom*_*ysz 8 permissions roles keycloak keycloak-services idp

假设我mycomp在 Keycloak 中使用一个领域来处理所有用户(+ masterKeycloak 超级管理员的领域)。

我的角色是客户支持 (CS),应该能够查看用户并管理他们的基本数据,如姓名、电子邮件、密码重置等。

我可以通过 3 种方式向任何用户授予类似或 的realm-management权限:manage-usersview-users

  • 直接分配
  • 通过为 CS 创建复合角色
  • 通过创建组并添加 CS

问题在于,授予manage-users权限 CS 最终能够管理角色和组,因此能够授予其他用户管理权限。这对我的配置无效 - 它是某个更高级别管理员的角色。

如何授予某些用户查看和管理用户基本数据的权限,而不允许他们管理角色?

nom*_*ysz 7

所以最终我终于找到了一个可行的解决方案。

问题是Role manage-users不能被Policy覆盖。

在 Keycloak ( https://issues.redhat.com/browse/KEYCLOAK-18151 )的 Pedro Igor Silva 的帮助下,我成功地设置了满足用例的配置。

启用 Keycloak 预览功能后,admin_fine_grained_authz我创建了全局复合角色 user-managers并从客户端授予它query-users 角色realm-management。然后我创建了当用户具有角色时授予资源权限的策略manageUsersuser-manager

效果很好