18.7. 角色操作
创建域角色
使用角色端点创建 realm 角色。
$ kcadm.sh create roles -r demorealm -s name=user -s 'description=Regular user with a limited set of permissions'
创建客户端角色
- 识别客户端。
使用
get
命令列出可用的客户端。$ kcadm.sh get clients -r demorealm --fields id,clientId
使用
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
命令,列出为复合角色分配的、可用且有效的域角色。
要列出复合角色分配的域角色,按名称(
--rname
选项)或 ID (--rid
选项)指定目标复合角色。例如:
$ kcadm.sh get-roles -r demorealm --rname testrole
使用
--effective
选项列出 有效的 域角色。例如:
$ kcadm.sh get-roles -r demorealm --rname testrole --effective
使用
--available
选项列出您可以添加到复合角色的 realm 角色。例如:
$ kcadm.sh get-roles -r demorealm --rname testrole --available
为复合角色列出分配的、可用和有效的客户端角色
使用 get-roles
命令,列出为复合角色分配的、可用且有效的客户端角色。
要列出为复合角色分配的客户端角色,您可以按名称(
--rname
选项)或 ID (--rid
选项)指定目标复合角色(--cclientid
选项)或 ID (--cid
选项)。例如:
$ kcadm.sh get-roles -r demorealm --rname testrole --cclientid realm-management
使用
--effective
选项列出 有效的 域角色。例如:
$ kcadm.sh get-roles -r demorealm --rname testrole --cclientid realm-management --effective
使用
--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-management
、create-client
和 view-users
中定义的角色添加到 testrole
复合角色。
$ kcadm.sh add-roles -r demorealm --rname testrole --cclientid realm-management --rolename create-client --rolename view-users
将客户端角色添加到客户端角色
使用
get-roles
命令,确定复合客户端角色的 ID。例如:
$ kcadm.sh get-roles -r demorealm --cclientid test-client --rolename operations
-
假定客户端存在具有名为
test-client
的 clientId 属性、名为support
的客户端角色,以及名为operations
的客户端角色,它成为一个复合角色,其 ID 为 "fc400897-ef6a-4e8c-872b-1581b7fa8a71"。 使用以下示例将另一个角色添加到复合角色。
$ kcadm.sh add-roles -r demorealm --cclientid test-client --rid fc400897-ef6a-4e8c-872b-1581b7fa8a71 --rolename support
使用
get-roles --all
命令列出复合角色的角色。例如:
$ kcadm.sh get-roles --rid fc400897-ef6a-4e8c-872b-1581b7fa8a71 --all
从复合角色删除客户端角色
使用 remove-roles
命令,从复合角色中删除客户端角色。
使用以下示例,从 testrole
复合角色中删除 client realm-management
、create-client
角色和 view-users
角色中定义的两个角色。
$ kcadm.sh remove-roles -r demorealm --rname testrole --cclientid realm-management --rolename create-client --rolename view-users
将客户端角色添加到组
使用 add-roles
命令添加 realm 角色和客户端角色。
以下示例将客户端 realm-management
、create-client
和 view-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-client
和 view-users
。
如需更多信息 ,请参阅组操作。
$ kcadm.sh remove-roles -r demorealm --gname Group --cclientid realm-management --rolename create-client --rolename view-users