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

Posted

技术标签:

【中文标题】如何在 Keycloak 中授予部分用户部分用户管理权限?【英文标题】:How to grant some users partial user management rights in Keycloak? 【发布时间】:2021-07-20 14:31:45 【问题描述】:

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

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

我可以通过 3 种方式向任何用户授予 realm-management 权限,例如 manage-usersview-users

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

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

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

【问题讨论】:

【参考方案1】:

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

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

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

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

效果很好

【讨论】:

仅供参考@dreamcrash 感谢您告诉我

以上是关于如何在 Keycloak 中授予部分用户部分用户管理权限?的主要内容,如果未能解决你的问题,请参考以下文章

仅创建用户 Keycloak 角色?

SQL Server中授予用户查看对象定义的权限

雪花数据共享 - 授予部分执行 |授予未执行

SQL Server中授予用户查看对象定义的权限

如何根据请求的范围自定义 KeyCloak 身份验证流程

如何授予用户级别访问私有 GitLab 存储库的权限?