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

2023-11-23

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

我们有X组和Y组。

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

  1. 可以创建没有组的用户。
  2. 可以将没有组的用户分配到组 X。
  3. 可以编辑和管理X组中的用户。
  4. 无法查看/编辑/管理 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(使用前将#替换为@)

KeyCloak 将用户管理限制到某些组,同时启用“管理用户” 的相关文章

随机推荐

  • C++ Win32 未在 WM_DEVICECHANGE 上接收 DBT_DEVICEARRIVAL 或 DBT_DEVICEREMOVECOMPLETE

    我一直致力于检测 USB 插入 拔出 我已经使用 CreateWindowEx 实现了代码 并通过我的窗口进程回调传递了 WNCLASSEX 在插入和移除 USB 时 我成功收到 WM DEVICECHANGE 消息 但 wParam 始终
  • 如何将 JavaScript 变量“输出”到 HTML div 中

    我有一个 JavaScript 变量 我希望 HTML div 输出 7 我知道这很简单 但我似乎无法理解这一点 div Have 7 output here div 为 div 指定一个特定的 id 例如 div div 现在使用以下 J
  • 向上导航(操作栏的后箭头)不适用于片段

    我将抽屉布局作为我的活动的基本布局 并且我正在替换此抽屉布局内框架上的两个片段 第一个片段不会添加到片段的返回堆栈中 我在我的活动中显示汉堡包图标 我也希望在我的第一个片段中显示抽屉菜单 在第二个片段中 我禁用了汉堡包图标mActionBa
  • 是否可以使用输入值属性作为 CSS 选择器?

    是否可以使用 CSS 选择器来定位具有特定值的输入 示例 如何根据以下内容定位以下输入value United States
  • 使用 py2exe 捆绑 GTK 资源

    我正在使用 Python 2 6 和 PyGTK 2 22 6一体化安装程序在 Windows XP 上 尝试构建一个单文件可执行文件 通过py2exe 对于我的应用程序 我的问题是 当我将我的应用程序作为脚本运行时 即未内置到 exe文件
  • 当 C 预处理器宏定义两次时会发生什么?

    我定义了一个宏两次 如下所示 define a 2 define a 3 我认为任何发生a代码中将替换为2 什么时候 define a 3遇到了就没有了a代码中的 s 可以替换为3 所以2将优先 但是当我执行它的时候a被替换为3 为什么 如
  • 当我使用 XmlSerializer 反序列化时,为什么我的 DbNull 不是单例?

    我一直认为 DbNull value 是一个单例 因此你可以这样做 VB NET If someObject Is DbNull Value Then End if C If someObject DbNull Value 但最近 我使用
  • Azure 数据工厂和 SharePoint

    我有一些 Excel 文件存储在 SharePoint Online 中 我想要将 SharePoint 文件夹中存储的文件复制到 Azure Blob 存储 为了实现这一目标 我使用 Azure 门户在 Azure 数据工厂中创建一个新管
  • 写入RenderTarget后,如何高效克隆输出?

    XNA菜鸟在这里 每天都在学习 我刚刚弄清楚如何使用 RenderTarget2D 将多个纹理合成为一个 然而 虽然我可以将 RenderTarget2D 用作 Texture2D 来满足大多数用途 但有一个关键的区别 当调整后缓冲区大小时
  • Java GUI:文档对象模型

    HTML 有一个文档对象模型 Javascript 可以对其进行操作 移动 当我在 Swing 中创建 GUI 时 模型似乎非常不同 我不知道模型的名称 因为我正在创建布局管理器 并将对象粘贴在其中 我的问题 有没有办法以类似 DOM 的方
  • Safari 不发送“If-Modified-Since”和“If-None-Match”标头

    我正在使用 PHP 生成动态内容 我发送以下 HTTP 标头 HTTP 1 1 304 Not Modified Date Sun 09 Dec 2012 17 24 41 GMT Server Apache Connection keep
  • 规范表示是什么意思及其对网站的潜在漏洞

    我在谷歌上搜索了规范表示的含义 发现了一些非常神秘的文档 任何人都可以快速解释规范表示以及网站中针对规范表示攻击的一些典型漏洞是什么 规范化是获取输入 例如文件名或字符串 并将其转换为标准表示形式的过程 例如 如果您的 Web 应用程序仅允
  • Html.BeginForm 使用 FormMethod.GET 丢失了 RouteValues

    我注意到了什么Html BeginForm 提供的方法编码路线值 into actionFORM 标签的属性 这与 POST 方法配合得很好 但如果方法是 GET 则操作 URL 中的所有参数都会被浏览器删除 在 IE8 和 Firefox
  • 茉莉花期望(resultCode).toBe(200或409)

    对于某些测试场景 我需要针对多个值进行测试 这些值都可以 我想做的是如下 expect resultCode toBeIn 200 409 该规范应该在以下情况下通过 resultCode或者是200 or 409 那可能吗 ADDED感谢
  • 如何从 SQLite 文件恢复 Firefox 书签文件?

    我成功地从 Windows XP 下安装的 Firefox 中恢复了两个文件 第一个是 urlclassifier3 sqlite 第二个是 urlclassifier pset 据我了解 这些文件包含在用户配置文件下安装 Firefox
  • 我应该返回 List 还是 ArrayList?

    我发现自己同意返回一个接口而不是一个具体的类 原因很简单 我想要松耦合 但还会有其他影响或权衡吗 最好返回适合您的界面的最通用类型 如果有什么原因的话ArrayList本质上适合您返回的数据 那么您应该使用它 通常List很好 但你也可以考
  • Firebase 屏幕名称显示未设置

    我创建了一个项目Google Firebase Analytics我可以在控制台中记录屏幕名称 但对于一个屏幕screen view未记录 显示为not set在屏幕视图列表中 我使用了默认函数来记录屏幕视图事件 即 setCurrentS
  • 使用 python 在 2D 列表中搜索以查找 x,y 位置

    我有二维列表 我需要搜索元素的索引 由于我是编程新手 因此我使用了以下函数 def in list c for i in xrange 0 no classes if c in classes i return i return 1 这里的
  • 如何使用 NSNumberFormatter 在 UITextField 中打印货币

    我是这里的N00b 我这样打印我的货币 IBAction buttonPressed1 id sender double currency Amount1 text doubleValue Amount2 text doubleValue
  • KeyCloak 将用户管理限制到某些组,同时启用“管理用户”

    使用 KeyCloak 管理控制台 我尝试制定以下用例 我们有X组和Y组 角色 Group X Admin 可以执行以下操作 可以创建没有组的用户 可以将没有组的用户分配到组 X 可以编辑和管理X组中的用户 无法查看 编辑 管理 Y 组中的