18.10. 组操作

创建组

端点使用 create 命令创建新组。

例如:

$ kcadm.sh create groups -r demorealm -s name=Group

列出组

端点使用 get 命令列出组。

例如:

$ kcadm.sh get groups -r demorealm

获取特定组

使用组的 ID 来构造端点 URI,如 groups/GROUP_ID

例如:

$ kcadm.sh get groups/51204821-0580-46db-8f2d-27106c6b5ded -r demorealm

更新组

使用您用来获取特定组的相同端点 URI 的 update 命令。

例如:

$ kcadm.sh update groups/51204821-0580-46db-8f2d-27106c6b5ded -s 'attributes.email=["group@example.com"]' -r demorealm

删除组

使用您用来获取特定组的相同端点 URI 的 delete 命令。

例如:

$ kcadm.sh delete groups/51204821-0580-46db-8f2d-27106c6b5ded -r demorealm

创建子组

通过列出组来查找父组的 ID。使用该 ID 构建端点 URI,如 groups/GROUP_ID/children

例如:

$ kcadm.sh create groups/51204821-0580-46db-8f2d-27106c6b5ded/children -r demorealm -s name=SubGroup

在另一个组下移动组

  1. 查找现有父组和现有子组的 ID。
  2. 使用父组的 ID 来构造端点 URI,如 groups/PARENT_GROUP_ID/children
  3. 在此端点上运行 create 命令,并将子组的 ID 作为参数传递。

例如:

$ kcadm.sh create groups/51204821-0580-46db-8f2d-27106c6b5ded/children -r demorealm -s id=08d410c6-d585-4059-bb07-54dcb92c5094

获取特定用户的组

使用用户的 ID 来确定组中的用户成员资格来编写端点 URI,如 用户/USER_ID/groups

例如:

$ kcadm.sh get users/b544f379-5fc4-49e5-8a8d-5cfb71f46f53/groups -r demorealm

将用户添加到组中

使用 update 命令以及由用户 ID 和组 ID (如 用户/USER_ID/groups/GROUP_ID )组成的端点 URI 将用户添加到组中。

例如:

$ kcadm.sh update users/b544f379-5fc4-49e5-8a8d-5cfb71f46f53/groups/ce01117a-7426-4670-a29a-5c118056fe20 -r demorealm -s realm=demorealm -s userId=b544f379-5fc4-49e5-8a8d-5cfb71f46f53 -s groupId=ce01117a-7426-4670-a29a-5c118056fe20 -n

从组中删除用户

对用于添加用户的端点 URI (如 用户/USER_ID/groups/GROUP_ID )上使用 delete 命令,从组中删除用户。

例如:

$ kcadm.sh delete users/b544f379-5fc4-49e5-8a8d-5cfb71f46f53/groups/ce01117a-7426-4670-a29a-5c118056fe20 -r demorealm

列出组分配的、可用和有效的域角色

使用专用的 get-roles 命令,列出组的已分配、可用且有效的域角色。

  1. 按名称指定目标组(--gname 选项)、路径(--gpath 选项)或 ID (--gid 选项)来列出组 分配的 realm 角色。

    例如:

    $ kcadm.sh get-roles -r demorealm --gname Group
  2. 使用 --effective 选项列出 有效的 域角色。

    例如:

    $ kcadm.sh get-roles -r demorealm --gname Group --effective
  3. 使用 --available 选项列出您可以添加到组中的 realm 角色。

    例如:

    $ kcadm.sh get-roles -r demorealm --gname Group --available

列出组分配的、可用和有效的客户端角色

使用 get-roles 命令,列出分配给组的已分配、可用且有效的客户端角色。

  1. 按名称指定目标组(--gname 选项)或 ID (--gid 选项)。
  2. 通过 clientId 属性(--cclientid 选项)或 ID (--id 选项)指定客户端,以列出 已为用户分配 的客户端角色。

    例如:

    $ kcadm.sh get-roles -r demorealm --gname Group --cclientid realm-management
  3. 使用 --effective 选项列出 有效的 域角色。

    例如:

    $ kcadm.sh get-roles -r demorealm --gname Group --cclientid realm-management --effective
  4. 使用 --available 选项列出您仍然可以添加到组中的域角色。

    例如:

    $ kcadm.sh get-roles -r demorealm --gname Group --cclientid realm-management --available