11.9.6. 用 jboss-cli.sh 配置组角色
角色包含或排除组可以通过管理控制台和
jboss-cli.sh
进行配置。本节只展示如何使用 jboss-cli.sh
工具来完成。
映射用户/组到角色的配置位于 management API 里的
/core-service=management/access=authorization
as role-mapping
元素。
只有具有 SuperUser 或 Administrator 角色的用户才能执行这些配置。
过程 11.16. 查看组角色分配配置
- 使用
read-children-names
操作来获取配置角色的完整列表:/core-service=management/access=authorization:read-children-names(child-type=role-mapping)
[standalone@localhost:9999 access=authorization] :read-children-names(child-type=role-mapping) { "outcome" => "success", "result" => [ "ADMINISTRATOR", "DEPLOYER", "MAINTAINER", "MONITOR", "OPERATOR", "SuperUser" ] }
- 使用指定 role-mapping 的
read-resource
操作来获取某个角色的完整细节:/core-service=management/access=authorization/role-mapping=ROLENAME:read-resource(recursive=true)
[standalone@localhost:9999 access=authorization] ./role-mapping=ADMINISTRATOR:read-resource(recursive=true) { "outcome" => "success", "result" => { "include-all" => false, "exclude" => undefined, "include" => { "user-theboss" => { "name" => "theboss", "realm" => undefined, "type" => "USER" }, "user-harold" => { "name" => "harold", "realm" => undefined, "type" => "USER" }, "group-SysOps" => { "name" => "SysOps", "realm" => undefined, "type" => "GROUP" } } } } [standalone@localhost:9999 access=authorization]
过程 11.17. 添加新的角色
这个过程展示了如何添加角色的 role-mapping 条目。这必须在角色可以被配置前完成。
- 使用
add
操作来添加新的角色配置。/core-service=management/access=authorization/role-mapping=ROLENAME:add
[standalone@localhost:9999 access=authorization] ./role-mapping=AUDITOR:add {"outcome" => "success"} [standalone@localhost:9999 access=authorization]
过程 11.18. 添加包含在角色里的组
这个过程展示了如何添加组到角色的包含列表里。
如果角色的配置还未完成,那你必须先设置 role-mapping 条目。
- 请使用
add
操作来添加组到角色的包含列表里。/core-service=management/access=authorization/role-mapping=ROLENAME/include=ALIAS:add(name=GROUPNAME, type=GROUP)
ROLENAME 是被配置的角色的名称。GROUPNAME 是添加到包含列表里的组的名称。ALIAS
是这个映射的唯一名称。红帽推荐你对别名使用命名规则,如group-GROUPNAME
。[standalone@localhost:9999 access=authorization] ./role-mapping=AUDITOR/include=group-investigators:add(name=investigators, type=GROUP) {"outcome" => "success"} [standalone@localhost:9999 access=authorization]
过程 11.19. 添加角色所排除的组
这个过程展示了如何添加组到角色的排除列表里。
如果角色的配置还未完成,那你必须先创建 role-mapping 条目。
- 请使用
add
操作来添加组到角色的排除列表里。/core-service=management/access=authorization/role-mapping=ROLENAME/exclude=ALIAS:add(name=GROUPNAME, type=GROUP)
ROLENAME 是被配置的角色的名称。GROUPNAME 是添加到包含列表里的组的名称。ALIAS
是这个映射的唯一名称。红帽推荐你对别名使用命名规则,如group-GROUPNAME
。[standalone@localhost:9999 access=authorization] ./role-mapping=AUDITOR/exclude=group-supervisors:add(name=supervisors, type=USER) {"outcome" => "success"} [standalone@localhost:9999 access=authorization]
过程 11.20. 删除组的角色包含配置
这个过程展示了如何从角色映射里删除组包含条目。
- 请使用
remove
操作来删除这个条目。/core-service=management/access=authorization/role-mapping=ROLENAME/include=ALIAS:remove
ROLENAME 是被配置的角色的名称。ALIAS
是这个映射的唯一名称。红帽推荐你对别名使用命名规则,如group-GROUPNAME
。[standalone@localhost:9999 access=authorization] ./role-mapping=AUDITOR/include=group-investigators:remove {"outcome" => "success"} [standalone@localhost:9999 access=authorization]
从包含列表里删除组并不会从系统删除这个组,也不能保证角色不会被分配给这个组。这个角色仍可能分配给组里的用户。
过程 11.21. 删除组的角色排除配置
这个过程展示了如何从角色映射里删除组排除条目。
- 请使用
remove
操作来删除这个条目。/core-service=management/access=authorization/role-mapping=ROLENAME/exclude=ALIAS:remove
ROLENAME 是被配置的角色的名称。ALIAS
是这个映射的唯一名称。红帽推荐你对别名使用命名规则,如group-GROUPNAME
。[standalone@localhost:9999 access=authorization] ./role-mapping=AUDITOR/exclude=group-supervisors:remove {"outcome" => "success"} [standalone@localhost:9999 access=authorization]
从排除列表里删除组并不会从系统删除这个组,也不能保证角色被分配给这个组。这个角色仍可能根据组成员资格被排除。