20.7. ロール操作
レルムロールの作成
roles エンドポイントを使用してレルムロールを作成します。
kcadm.sh create roles -r demorealm -s name=user -s 'description=Regular user with limited set of permissions'
$ kcadm.sh create roles -r demorealm -s name=user -s 'description=Regular user with limited set of permissions'
クライアントロールの作成
最初にクライアントを特定し、
getコマンドを使用してクライアントロールの作成時に利用可能なクライアントを一覧表示します。kcadm.sh get clients -r demorealm --fields id,clientId
$ kcadm.sh get clients -r demorealm --fields id,clientIdCopy to Clipboard Copied! Toggle word wrap Toggle overflow clientId属性を使用して、clients/ID/rolesなどのエンドポイント URI を構築して新規ロールを作成します。以下に例を示します。
kcadm.sh create clients/a95b6af3-0bdc-4878-ae2e-6d61a4eca9a0/roles -r demorealm -s name=editor -s 'description=Editor can edit, and publish any article'
$ kcadm.sh create clients/a95b6af3-0bdc-4878-ae2e-6d61a4eca9a0/roles -r demorealm -s name=editor -s 'description=Editor can edit, and publish any article'Copy to Clipboard Copied! Toggle word wrap Toggle overflow
レルムロールの一覧表示
roles エンドポイントで get コマンドを使用して、既存のレルムロールを一覧表示します。
kcadm.sh get roles -r demorealm
$ kcadm.sh get roles -r demorealm
get-roles コマンドも使用できます。
kcadm.sh get-roles -r demorealm
$ kcadm.sh get-roles -r demorealm
クライアントロールの一覧表示
レルムおよびクライアントロールの一覧表示を簡素化するための専用の get-roles コマンドがあります。get コマンドの拡張機能であり、ロールを一覧表示するための追加のセマンティクスと同じように動作します。
get-roles コマンドを使用して clientId 属性 (--cclientid オプションを使用) または id (--cid オプションを使用) のいずれかを渡して、クライアントロールをリストするクライアントを特定します。
以下に例を示します。
kcadm.sh get-roles -r demorealm --cclientid realm-management
$ kcadm.sh get-roles -r demorealm --cclientid realm-management
特定のレルムロールの取得
get コマンドおよびロール 名 を使用して、特定のレルムロール (roles/ROLE_NAME) のエンドポイント URI を作成します。user は、既存ロールの名前に置き換えます。
以下に例を示します。
kcadm.sh get roles/user -r demorealm
$ kcadm.sh get roles/user -r demorealm
特定の get-roles コマンドを使用して、ロール名 (--rolename オプションを使用) または ID (--roleid オプションを使用)を渡すこともできます。
以下に例を示します。
kcadm.sh get-roles -r demorealm --rolename user
$ 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
$ 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'
$ 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'
$ kcadm.sh update clients/a95b6af3-0bdc-4878-ae2e-6d61a4eca9a0/roles/editor -r demorealm -s 'description=User that can edit, and publish articles'
レルムロールの削除
特定のレルムロールを取得するために使用した同じエンドポイント URI で delete コマンドを使用します。
以下に例を示します。
kcadm.sh delete roles/user -r demorealm
$ kcadm.sh delete roles/user -r demorealm
クライアントロールの削除
特定のクライアントロールを取得するために使用したエンドポイント URI で delete コマンドを使用します。
以下に例を示します。
kcadm.sh delete clients/a95b6af3-0bdc-4878-ae2e-6d61a4eca9a0/roles/editor -r demorealm
$ 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
$ kcadm.sh get-roles -r demorealm --rname testroleCopy to Clipboard Copied! Toggle word wrap Toggle overflow 有効な レルムロールの一覧を表示するには、追加の
--effectiveオプションを使用します。以下に例を示します。
kcadm.sh get-roles -r demorealm --rname testrole --effective
$ kcadm.sh get-roles -r demorealm --rname testrole --effectiveCopy to Clipboard Copied! Toggle word wrap Toggle overflow --availableオプションを使用して、複合ロールに追加できるレルムロールを一覧表示します。以下に例を示します。
kcadm.sh get-roles -r demorealm --rname testrole --available
$ kcadm.sh get-roles -r demorealm --rname testrole --availableCopy to Clipboard Copied! Toggle word wrap Toggle overflow
複合ロールに割り当てられている、利用可能、有効なクライアントロールの一覧表示
複合ロールに割り当てられ、利用可能な、有効なクライアントロールを一覧表示するには、専用の get-roles コマンドを使用します。
複合ロールに 割り当てられた クライアントロールを一覧表示するには、名前 (
--rnameオプション) または ID (--ridオプション) のいずれかでターゲット複号ロールを指定し、clientId 属性 (--cclientidオプションを使用) または ID (--cidオプションを使用) のいずれかでターゲット複合ロールを指定できます。以下に例を示します。
kcadm.sh get-roles -r demorealm --rname testrole --cclientid realm-management
$ kcadm.sh get-roles -r demorealm --rname testrole --cclientid realm-managementCopy to Clipboard Copied! Toggle word wrap Toggle overflow 有効な レルムロールの一覧を表示するには、追加の
--effectiveオプションを使用します。以下に例を示します。
kcadm.sh get-roles -r demorealm --rname testrole --cclientid realm-management --effective
$ kcadm.sh get-roles -r demorealm --rname testrole --cclientid realm-management --effectiveCopy to Clipboard Copied! Toggle word wrap Toggle overflow --availableオプションを使用して、ターゲット複合ロールに追加できるレルムロールを一覧表示します。以下に例を示します。
kcadm.sh get-roles -r demorealm --rname testrole --cclientid realm-management --available
$ kcadm.sh get-roles -r demorealm --rname testrole --cclientid realm-management --availableCopy to Clipboard Copied! Toggle word wrap Toggle overflow
レルムロールの複合ロールへの追加
レルムロールおよびクライアントロールの追加に使用できる専用の add-roles コマンドがあります。
以下の例では、user ロールを複合ロール testrole に追加します。
kcadm.sh add-roles --rname testrole --rolename user -r demorealm
$ kcadm.sh add-roles --rname testrole --rolename user -r demorealm
複合ロールからのレルムロールの削除
レルムロールおよびクライアントロールの削除に使用できる専用の remove-roles コマンドがあります。
以下の例では、ターゲット複合ロール testrole から user ロールを削除します。
kcadm.sh remove-roles --rname testrole --rolename user -r demorealm
$ kcadm.sh remove-roles --rname testrole --rolename user -r demorealm
クライアントロールのレルムロールへの追加
レルムロールおよびクライアントロールの追加に使用できる専用の 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
$ 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
$ kcadm.sh get-roles -r demorealm --cclientid test-client --rolename operationsCopy to Clipboard Copied! Toggle word wrap Toggle overflow -
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
$ kcadm.sh add-roles -r demorealm --cclientid test-client --rid fc400897-ef6a-4e8c-872b-1581b7fa8a71 --rolename supportCopy to Clipboard Copied! Toggle word wrap Toggle overflow get-roles --allコマンドを使用して、複合ロールのロールを一覧表示します。以下に例を示します。
kcadm.sh get-roles --rid fc400897-ef6a-4e8c-872b-1581b7fa8a71 --all
$ kcadm.sh get-roles --rid fc400897-ef6a-4e8c-872b-1581b7fa8a71 --allCopy to Clipboard Copied! Toggle word wrap Toggle overflow
複合ロールからのクライアントロールの削除
専用の remove-roles コマンドを使用して、複合ロールからクライアントロールを削除します。
以下の例を使用して、クライアントの realm-management で定義された 2 つのロールを削除します (create-client ロールと view-users ロール) を testrole 複合ロールから削除します。
kcadm.sh remove-roles -r demorealm --rname testrole --cclientid realm-management --rolename create-client --rolename view-users
$ kcadm.sh remove-roles -r demorealm --rname testrole --cclientid realm-management --rolename create-client --rolename view-users
クライアントロールのグループへの追加
レルムロールおよびクライアントロールの追加に使用できる専用の add-roles コマンドを使用します。
以下の例では、クライアント realm-management に定義したロールを追加します。create-client ロールおよび view-users ロールを Group グループ (--gname オプション) に追加します。代わりに、グループを ID で指定できます (--gid オプションを使用)。
グループに対して実行できる操作の詳細は、「グループ操作」を参照してください。
kcadm.sh add-roles -r demorealm --gname Group --cclientid realm-management --rolename create-client --rolename view-users
$ kcadm.sh add-roles -r demorealm --gname Group --cclientid realm-management --rolename create-client --rolename view-users
グループからのクライアントロールの削除
専用の remove-roles コマンドを使用して、クライアントロールをグループから削除します。
以下の例を使用して、クライアントの realm-management で定義された 2 つのロールを削除します (create-client ロールと view-users ロールを Group グループから削除します)。
グループに対して実行できる操作の詳細は、「グループ操作」を参照してください。
kcadm.sh remove-roles -r demorealm --gname Group --cclientid realm-management --rolename create-client --rolename view-users
$ kcadm.sh remove-roles -r demorealm --gname Group --cclientid realm-management --rolename create-client --rolename view-users