KeyCloak 将用户管理限制到某些组,同时启用“管理用户”

Jam*_* Ta 5 keycloak keycloak-services

使用 KeyCloak 管理控制台,我试图制定以下用例。

我们有 X 组和 Y 组。

“Group X Admin”角色可以执行以下操作:

  1. 可以创建没有组的用户。
  2. 可以将没有组的用户分配到组 X。
  3. 可以编辑和管理 X 组中的用户。
  4. 无法查看/编辑/管理 Y 组中的用户。

似乎为了实现案例 1,我必须使“X 组管理员”成为与领域管理客户端中的“管理用户”角色相关联的复合角色。但是,执行此操作后,“X 组管理员”现在有权查看/管理/编辑 Y 组用户。

似乎我无法限制对 Y 组的访问,因为管理用户角色似乎完全覆盖了细粒度权限。

有没有办法在限制对某些组的访问的同时授予添加用户的权限?

Cod*_*odo 7

您应该查看Fine Grain Admin Permissions。它仍处于预览阶段(因此 RedHat 不支持)但它是您正在寻找的功能类型。

我当然已经测试了一个可以满足第 3 项和第 4 项的设置。第11.3.2 节限制用户角色映射中的描述应该让您足够接近第 2 项。第 1 项可能需要更多调查。我不能告诉你它是否可行。

尽管Fine Grain Admin Permission非常强大,但我们得出的结论是它不足以满足我们的要求。所以我们放弃了它并采用了不同的解决方案(Keycloak 前面的特权服务,用于委托用户管理)。

更新

一些说明如何设置它:

  • 启用预览配置文件(在 Keycloak 启动脚本中)
  • 启用客户端Realm-management 的权限(Clients / Realm-Management / Permissions / Permissions Enabled)
  • 创建一个组x 用户
  • 创建组x-admins
  • 启用组x 用户的权限(组/X/权限/权限已启用)
  • 单击查看成员(在同一页面上)并添加组策略:
    • 范围:查看成员
    • 应用策略:创建策略.../组
    • 输入名称,例如 x-admin-policy
    • 输入说明
    • 组:选择组x-admins
    • 节省
    • 管理成员重复

  • @kmualem:我在上面添加了一些说明 (2认同)

小智 0

似乎当前的管理控制台中没有办法:(。我也浏览了文档(甚至通过源代码;))但没有找到办法。也许更好地在 keycloak jira 项目中创建一个请求。顺便说一句,我也想解决完全相同的问题。实际上,有一个关于记录管理控制台的细粒度权限的 jira 票证。 https://issues.jboss.org/browse/KEYCLOAK-3444 也许您可以在那里发表评论或打开新故事