17.7. ロール操作
レルムロールの作成
roles
エンドポイントを使用してレルムロールを作成します。
$ 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
属性を使用して、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'
レルムロールのリスト表示
roles
エンドポイントで get
コマンドを使用して、既存のレルムロールをリスト表示します。
$ kcadm.sh get roles -r demorealm
get-roles
コマンドも使用できます。
$ kcadm.sh get-roles -r demorealm
クライアントロールのリスト表示
Red Hat build of Keycloak には、レルムロールおよびクライアントロールの一覧表示を単純化する専用の get-roles
コマンドがあります。このコマンドは get コマンドの拡張であり、get
コマンドと同じように動作し ます
が、ロールをリストするための追加のセマンティクスがあります。
get-roles
コマンドに clientId (--cclientid
) オプションまたは id
(--cid
) オプションを指定して使用し、クライアントを識別してクライアントロールをリスト表示します。
以下に例を示します。
$ 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'
レルムロールの削除
特定のレルムロールを取得するために使用したエンドポイント URI で delete
コマンドを使用します。
以下に例を示します。
$ kcadm.sh delete roles/user -r demorealm
クライアントロールの削除
特定のクライアントロールを取得するために使用したエンドポイント URI で delete
コマンドを使用します。
以下に例を示します。
$ 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
オプションを使用して、複合ロールに追加できるレルムロールをリスト表示します。以下に例を示します。
$ kcadm.sh get-roles -r demorealm --rname testrole --available
複合ロールに割り当てられている、利用可能、有効なクライアントロールのリスト表示
複合ロールに割り当てられ、利用可能で有効なクライアントロールをリスト表示するには、get-roles
コマンドを使用します。
複合ロールに 割り当てられた クライアントロールをリスト表示するには、名前 (
--rname
オプション) または ID(--rid
オプション) でターゲット複合ロールを指定し、clientId 属性 (--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
オプションを使用して、ターゲット複合ロールに追加できるレルムロールをリスト表示します。以下に例を示します。
$ kcadm.sh get-roles -r demorealm --rname testrole --cclientid realm-management --available
レルムロールの複合ロールへの追加
Red Hat build of Keycloak には、レルムロールとクライアントロールを追加するための add-roles
コマンドがあります。
この例では、user
ロールを複合ロール testrole
に追加します。
$ kcadm.sh add-roles --rname testrole --rolename user -r demorealm
複合ロールからのレルムロールの削除
Red Hat build of Keycloak には、レルムロールおよびクライアントロールを削除するための remove-roles
コマンドがあります。
以下の例では、ターゲット複合ロール testrole
から user
ロールを削除します。
$ kcadm.sh remove-roles --rname testrole --rolename user -r demorealm
クライアントロールのレルムロールへの追加
Red Hat build of Keycloak には、レルムロールとクライアントロールを追加するための 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
コマンドを使用して、複合ロールからクライアントロールを削除します。
以下の例を使用して、クライアントの 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
クライアントロールのグループへの追加
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
グループからのクライアントロールの削除
remove-roles
コマンドを使用して、グループからクライアントロールを削除します。
以下の例では、クライアントの レルム管理
、create-client
および view-users
に定義された 2 つのロールを Group
グループから削除します。
詳細は、グループ操作 を参照してください。
$ kcadm.sh remove-roles -r demorealm --gname Group --cclientid realm-management --rolename create-client --rolename view-users