7.7. 组
红帽构建的 Keycloak 组管理每个用户的通用属性和角色映射集合。用户可以是任意数量的组的成员,并继承分配给每个组的属性和角色映射。
要管理组,点菜单中的 Groups。
组
组是分层的。个组可以有多个子组,但一个组只能有一个父项。子组从其父级继承属性和角色映射。用户也从其父级继承属性和角色映射。
如果您有父组和子组,并且仅属于子组的用户,则子组中的用户将继承父组和子组的属性和角色映射。
组的层次结构有时会使用组路径来表示。该路径是表示特定组层次结构的名称的完整列表,从上到底部,用斜杠 /
分隔(与文件系统中的文件类似)。例如,一个路径可以是 /top/level1/level2
,这表示 top
是一个顶层组,并且是 level1
的父项,后者又是 level2
的父对象。此路径代表组 level2
的层次结构。
由于历史原因,红帽构建的 Keycloak 不会在组名称本身中转义斜杠。因此,在 top
下名为 level1/group
的组使用路径 /top/level1/group
,这是误导的。红帽构建的 Keycloak 可通过 option --spi-group-jpa-escape-slashes-in-group-path
启动为 true
,然后名称中的斜杠将用字符 ~
进行转义。转义字符标记斜杠是名称的一部分,且没有分层含义。以上路径示例在转义时为 /top/level1~/group
。
bin/kc.[sh|bat] start --spi-group-jpa-escape-slashes-in-group-path=true
bin/kc.[sh|bat] start --spi-group-jpa-escape-slashes-in-group-path=true
以下示例包括顶级 销售组 和子 北美 子组。
要添加组,请执行以下操作:
- 点组。
- 点 Create group。
- 输入组名称。
- 点 Create。
点组名称。
此时会显示组管理页面。
组
您定义的属性和角色映射由属于该组成员的组和用户继承。
将用户添加到组中:
- 点菜单中的 Users。
- 点您要执行角色映射的用户。如果没有显示用户,请单击 View all users。
- 点 Groups。
- 点 Join Group。
- 从对话框中选择一个组。
- 从 Available Groups 树中选择一个组。
点 Join。
加入组
从用户中删除组:
- 点菜单中的 Users。
- 单击要从组中删除的用户。
- 点 group 表行中的 Leave。
在本例中,用户 jimlincoln 位于 北美地区。您可以看到组的 Members 选项卡下显示的 jimlincoln。
组成员身份
7.7.1. 与角色相比的组
组和角色具有一些相似性和差异。在 Red Hat build of Keycloak 中,组是应用角色和属性的用户集合。角色定义用户类型,应用会为角色分配权限和访问控制。
复合角色 与组相似,因为它们提供相同的功能。它们之间的差别是概念性的。复合角色将权限模型应用到一组服务和应用程序。使用复合角色来管理应用程序和服务。
组专注于用户的集合及其在组织中的角色。使用组来管理用户。
7.7.2. 使用默认组
要自动将组成员资格分配给任何通过 身份代理 创建或导入的用户,您可以使用默认组。
- 单击菜单中的 Realm settings。
- 点 User registration 选项卡。
单击 Default Groups 选项卡。
默认组
此截屏显示一些 默认的组 已存在。