使用 KeyCloak 管理控制台,我尝试制定以下用例。
我们有X组和Y组。
角色“Group X Admin”可以执行以下操作:
- 可以创建没有组的用户。
- 可以将没有组的用户分配到组 X。
- 可以编辑和管理X组中的用户。
- 无法查看/编辑/管理 Y 组中的用户。
看来,为了实现案例 1,我必须将“Group X Admin”设为一个复合角色,链接到领域管理客户端中的“管理用户”角色。
但是,执行此操作后,“X 组管理员”现在有权查看/管理/编辑 Y 组用户。
看来我无法限制对 Y 组的访问,因为细粒度权限似乎完全被管理用户角色覆盖。
有没有办法授予添加用户权限,同时限制对某些组的访问?
你应该看看细粒度管理权限。它仍处于预览阶段(因此 RedHat 不支持),但它正是您正在寻找的功能。
我当然已经测试了可以满足第 3 项和第 4 项的设置。章节中的描述11.3.2 限制用户角色映射应该让您足够接近第 2 项。第 1 项可能需要更多的调查。我无法告诉你这是否可行。
虽然细粒度管理员权限非常强大,我们得出的结论是它不足以满足我们的要求。因此我们放弃了它并采用了不同的解决方案(Keycloak 前面的特权服务,用于委托用户管理)。
Update
一些如何设置的说明:
- 启用预览配置文件(在 Keycloak 启动脚本中)
- 启用客户端权限领域管理(客户端/领域管理/权限/已启用权限)
- 创建一个群组x-users
- 创建一个群组x-admins
- 启用组权限x-users(组/X/权限/已启用权限)
- Click view-members (on the same page) and add a group policy:
- 范围:查看成员
- 应用策略:创建策略.../组
- 输入名称,例如x-管理策略
- 输入描述
- 群组:选择群组x-admins
- Save
- 重复进行管理成员
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)