3.3.3. ロールの管理
RBAC (Role-Based Access Control) を有効にすると、管理ユーザーが許可されている内容は、ユーザーが割り当てられているロールによって決まります。JBoss EAP 6 は、ユーザーおよびグループメンバーシップの両方に基づた包含と除外のシステムを使用して、ユーザーが所属するロールを決定します。
ユーザーは、以下の場合にロールに割り当てられると見なされます。
- ロールに含めるユーザーとして一覧表示される、または
- ロールに含まれるように一覧表示されるグループのメンバー。
また、ユーザーが以下を実行しない場合、ユーザーはロールに割り当てられると見なされます。
- ロールから除外するユーザーとして一覧、または
- ロールから除外される一覧のグループのメンバーです。
除外は包含よりも優先されます。
ユーザーおよびグループのロール包含および除外の設定は、管理コンソールと管理 CLI の両方を使用して設定できます。
この設定を実行できるのは、SuperUser または Administrator ロールのユーザーのみです。
3.3.3.1. 管理 CLI を用いたユーザーロール割り当ての設定
ユーザーおよびグループのロールへのマッピングの設定は、role-mapping 要素として /core-service=management/access=authorization に位置します。
この設定を実行できるのは、SuperUser または Administrator ロールのユーザーのみです。
ロール割り当て設定の表示
read-children-names 操作を使用して、設定されたロールの完全なリストを取得します。
/core-service=management/access=authorization:read-children-names(child-type=role-mapping) { "outcome" => "success", "result" => [ "Administrator", "Deployer", "Maintainer", "Monitor", "Operator", "SuperUser" ] }
/core-service=management/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) { "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" } } } }
/core-service=management/access=authorization/role-mapping=ROLENAME: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"
}
}
}
}
新規ロールの追加
この手順では、ロールの role-mapping エントリーを追加する方法を説明します。これは、ロールを設定する前に行う必要があります。
add 操作で、新しいロール設定を追加します。
/core-service=management/access=authorization/role-mapping=ROLENAME:add
/core-service=management/access=authorization/role-mapping=ROLENAME:add
- ROLENAME は、新しいマッピングの対象となるロールの名前です (例: 監査人)。
CLI の例
/core-service=management/access=authorization/role-mapping=Auditor:add
/core-service=management/access=authorization/role-mapping=Auditor:add
ロールに include されるユーザーの追加
この手順では、ユーザーをロールの include されたリストに追加する方法を説明します。
ロールの設定が行われていない場合は、そのロールの role-mapping エントリーを最初に実行する必要があります。
add 操作を使用して、ロール、追加一覧にユーザーエントリーを追加します。
/core-service=management/access=authorization/role-mapping=ROLENAME/include= \ ALIAS:add(name=USERNAME, type=USER)
/core-service=management/access=authorization/role-mapping=ROLENAME/include= \
ALIAS:add(name=USERNAME, type=USER)
- ROLENAME は、設定されているロールの名前です。(例: 監査人)
- ALIAS は、このマッピングの一意の名前です。Red Hat は、user-USERNAME (例: user-max) などのエイリアスの命名規則を使用することを推奨します。
- username は、包含リストに追加されるユーザーの名前です。
CLI の例
/core-service=management/access=authorization/role-mapping=Auditor/include= \ user-max:add(name=max, type=USER)
/core-service=management/access=authorization/role-mapping=Auditor/include= \
user-max:add(name=max, type=USER)
ロールに exclude されるユーザーの追加
この手順では、ロールの除外リストにユーザーを追加する方法を説明します。
ロールの設定が行われていない場合は、そのロールの role-mapping エントリーを最初に実行する必要があります。
add 操作を使用して、ロールの除外リストにユーザーエントリーを追加します。
/core-service=management/access=authorization/role-mapping=ROLENAME/exclude= \ ALIAS:add(name=USERNAME, type=USER)
/core-service=management/access=authorization/role-mapping=ROLENAME/exclude= \
ALIAS:add(name=USERNAME, type=USER)
- ROLENAME は、設定されているロールの名前です。(例: 監査人)
- USERNAME は、除外リストに追加されているユーザーの名前です。
- ALIAS は、このマッピングの一意の名前です。Red Hat は、user-USERNAME (例: user-max) などのエイリアスの命名規則を使用することを推奨します。
CLI の例
/core-service=management/access=authorization/role-mapping=Auditor/exclude= \ user-max:add(name=max, type=USER)
/core-service=management/access=authorization/role-mapping=Auditor/exclude= \
user-max:add(name=max, type=USER)
ユーザーロールの include 設定の削除
この手順では、ロールマッピングからユーザー包含エントリーを削除する方法を説明します。
remove 操作を使用してエントリーを削除します。
/core-service=management/access=authorization/role-mapping=ROLENAME/include= \ ALIAS:remove
/core-service=management/access=authorization/role-mapping=ROLENAME/include= \
ALIAS:remove
- ROLENAME は、設定されているロールの名前です (例: 監査人)
- ALIAS は、このマッピングの一意の名前です。Red Hat は、user-USERNAME (例: user-max) などのエイリアスの命名規則を使用することを推奨します。
CLI の例
/core-service=management/access=authorization/role-mapping=Auditor/include= \ user-max:remove
/core-service=management/access=authorization/role-mapping=Auditor/include= \
user-max:remove
包含の一覧からユーザーを削除しても、ユーザーはシステムから削除されません。また、ロールがそのユーザーに割り当てられないようにします。ロールはグループメンバーシップに基づいて依然として割り当てられる可能性があります。
ユーザーロールの exclude 設定の削除
この手順では、ロールマッピングからユーザー除外エントリーを削除する方法を説明します。
削除操作でエントリーを削除します。
/core-service=management/access=authorization/role-mapping=ROLENAME/exclude= \ ALIAS:remove
/core-service=management/access=authorization/role-mapping=ROLENAME/exclude= \
ALIAS:remove
- ROLENAME は、設定されているロールの名前です。(例: 監査人)
- ALIAS は、このマッピングの一意の名前です。Red Hat は、user-USERNAME (例: user-max) などのエイリアスの命名規則を使用することを推奨します。
/core-service=management/access=authorization/role-mapping=Auditor/exclude= \ user-max:remove
/core-service=management/access=authorization/role-mapping=Auditor/exclude= \
user-max:remove
除外の一覧からユーザーを削除しても、ユーザーはシステムから削除されません。また、そのロールが必ずそのユーザーに割り当てられるようになるわけではありません。依然としてロールはグループメンバーシップに基づいて除外される可能性があります。