搜索

18.7. 角色操作

download PDF

创建域角色

使用角色端点创建 realm 角色。

$ kcadm.sh create roles -r demorealm -s name=user -s 'description=Regular user with a limited set of permissions'

创建客户端角色

  1. 识别客户端。
  2. 使用 get 命令列出可用的客户端。

    $ kcadm.sh get clients -r demorealm --fields id,clientId
  3. 使用 clientId 属性构建端点 URI (如 client /ID/roles )来创建新角色。

    例如:

    $ kcadm.sh create clients/a95b6af3-0bdc-4878-ae2e-6d61a4eca9a0/roles -r demorealm -s name=editor -s 'description=Editor can edit, and publish any article'

列出域角色

roles 端点上使用 get 命令列出现有的域角色。

$ kcadm.sh get roles -r demorealm

您还可以使用 get-roles 命令。

$ kcadm.sh get-roles -r demorealm

列出客户端角色

红帽单点登录具有一个专用的 get-roles 命令,可以简化域和客户端角色的列表。命令是对 get 命令的一个扩展,其行为与 get 命令相同,但还有额外的语义列表角色。

通过传递 clientId (--cclientid)选项或 id (--c id )选项,使用 get-roles 命令来识别客户端以列出客户端角色。

例如:

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

获取特定域角色

使用 get 命令和角色名称,为特定域角色( roles/ROLE_NAME )构建端点 URI,其中 user 是现有角色的名称。

例如:

$ kcadm.sh get roles/user -r demorealm

您可以使用 get-roles 命令,将它传递角色名称(--rolename 选项)或 ID (--roleid 选项)。

例如:

$ kcadm.sh get-roles -r demorealm --rolename user

获取特定的客户端角色

使用 get-roles 命令,将它传递 clientId 属性(--cclientid 选项)或 ID 属性(--cid 选项)来识别客户端,并传递角色名称(--rolename 选项)或角色 ID 属性(--roleid)来识别特定的客户端角色。

例如:

$ kcadm.sh get-roles -r demorealm --cclientid realm-management --rolename manage-clients

更新域角色

使用带有您用来获取特定域角色的端点 URI 的 update 命令。

例如:

$ kcadm.sh update roles/user -r demorealm -s 'description=Role representing a regular user'

更新客户端角色

使用 update 命令以及您用来获取特定客户端角色的端点 URI。

例如:

$ kcadm.sh update clients/a95b6af3-0bdc-4878-ae2e-6d61a4eca9a0/roles/editor -r demorealm -s 'description=User that can edit, and publish articles'

删除域角色

使用 delete 命令以及您用来获取特定域角色的端点 URI。

例如:

$ kcadm.sh delete roles/user -r demorealm

删除客户端角色

使用 delete 命令以及您用来获取特定客户端角色的端点 URI。

例如:

$ kcadm.sh delete clients/a95b6af3-0bdc-4878-ae2e-6d61a4eca9a0/roles/editor -r demorealm

为复合角色列出分配的、可用和有效的域角色

使用 get-roles 命令,列出为复合角色分配的、可用且有效的域角色。

  1. 要列出复合角色分配的域角色,按名称(--rname 选项)或 ID (--rid 选项)指定目标复合角色。

    例如:

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

    例如:

    $ kcadm.sh get-roles -r demorealm --rname testrole --effective
  3. 使用 --available 选项列出您可以添加到复合角色的 realm 角色。

    例如:

    $ kcadm.sh get-roles -r demorealm --rname testrole --available

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

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

  1. 要列出为复合角色分配的客户端角色,您可以按名称(--rname 选项)或 ID (--rid 选项)指定目标复合角色(--cclientid 选项)或 ID (--cid 选项)。

    例如:

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

    例如:

    $ kcadm.sh get-roles -r demorealm --rname testrole --cclientid realm-management --effective
  3. 使用 --available 选项列出您可以在目标复合角色中添加的 realm 角色。

    例如:

    $ kcadm.sh get-roles -r demorealm --rname testrole --cclientid realm-management --available

将 realm 角色添加到复合角色

Red Hat Single Sign-On 提供了一个 add-roles 命令,用于添加域角色和客户端角色。

本例 将用户 角色添加到复合角色 testrole 中。

$ kcadm.sh add-roles --rname testrole --rolename user -r demorealm

从复合角色中删除域角色

Red Hat Single Sign-On 提供了一个 remove-roles 命令,用于删除域角色和客户端角色。

下例从目标复合角色 testrole 中删除了用户角色。

$ kcadm.sh remove-roles --rname testrole --rolename user -r demorealm

将客户端角色添加到域角色

Red Hat Single Sign-On 提供了一个 add-roles 命令,用于添加域角色和客户端角色。

以下示例将客户端 realm-managementcreate-clientview-users 中定义的角色添加到 testrole 复合角色。

$ kcadm.sh add-roles -r demorealm --rname testrole --cclientid realm-management --rolename create-client --rolename view-users

将客户端角色添加到客户端角色

  1. 使用 get-roles 命令,确定复合客户端角色的 ID。

    例如:

    $ kcadm.sh get-roles -r demorealm --cclientid test-client --rolename operations
  2. 假定客户端存在具有名为 test-client 的 clientId 属性、名为 support 的客户端角色,以及名为 operations 的客户端角色,它成为一个复合角色,其 ID 为 "fc400897-ef6a-4e8c-872b-1581b7fa8a71"。
  3. 使用以下示例将另一个角色添加到复合角色。

    $ kcadm.sh add-roles -r demorealm --cclientid test-client --rid fc400897-ef6a-4e8c-872b-1581b7fa8a71 --rolename support
  4. 使用 get-roles --all 命令列出复合角色的角色。

    例如:

    $ kcadm.sh get-roles --rid fc400897-ef6a-4e8c-872b-1581b7fa8a71 --all

从复合角色删除客户端角色

使用 remove-roles 命令,从复合角色中删除客户端角色。

使用以下示例,从 testrole 复合角色中删除 client realm-managementcreate-client 角色和 view-users 角色中定义的两个角色。

$ kcadm.sh remove-roles -r demorealm --rname testrole --cclientid realm-management --rolename create-client --rolename view-users

将客户端角色添加到组

使用 add-roles 命令添加 realm 角色和客户端角色。

以下示例将客户端 realm-managementcreate-clientview-users 中定义的角色添加到组组(--gname 选项)。或者,您也可以按 ID 指定组(--gid 选项)。

如需更多信息 ,请参阅组操作

$ kcadm.sh add-roles -r demorealm --gname Group --cclientid realm-management --rolename create-client --rolename view-users

从组中删除客户端角色

使用 remove-roles 命令,从组中删除客户端角色。

以下示例从 Group 组移除了客户端域管理 中定义的两个角色:create-clientview-users

如需更多信息 ,请参阅组操作

$ kcadm.sh remove-roles -r demorealm --gname Group --cclientid realm-management --rolename create-client --rolename view-users
Red Hat logoGithubRedditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

© 2024 Red Hat, Inc.