18.7. ロール操作

レルムロールの作成

roles エンドポイントを使用してレルムロールを作成します。

$ kcadm.sh create roles -r demorealm -s name=user -s 'description=Regular user with a limited set of permissions'

クライアントロールの作成

  1. クライアントを特定します。
  2. get コマンドを使用して、利用可能なクライアントを一覧表示します。

    $ kcadm.sh get clients -r demorealm --fields id,clientId
  3. 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 Single Sign-On には、レルムロールおよびクライアントロールの一覧表示を単純化する専用の 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 コマンドを使用します。

  1. 複合ロールに 割り当てられた レルムロールを一覧表示するには、名前 (--rname オプション) または ID(--rid オプション) でターゲットの複合ロールを指定します。

    以下に例を示します。

    $ kcadm.sh get-roles -r demorealm --rname testrole
  2. 有効な レルムロールを一覧表示するには、 --effective オプションを使用します。

    以下に例を示します。

    $ kcadm.sh get-roles -r demorealm --rname testrole --effective
  3. --available オプションを使用して、複合ロールに追加できるレルムロールを一覧表示します。

    以下に例を示します。

    $ kcadm.sh get-roles -r demorealm --rname testrole --available

複合ロールに割り当てられている、利用可能、有効なクライアントロールの一覧表示

複合ロールに割り当てられ、利用可能で有効なクライアントロールを一覧表示するには、get-roles コマンドを使用します。

  1. 複合ロールに 割り当てられた クライアントロールを一覧表示するには、名前 (--rname オプション) または ID(--rid オプション) でターゲット複合ロールを指定し、clientId 属性 (--cclientid オプション) または ID(--cid オプション) でクライアントを指定します。

    以下に例を示します。

    $ kcadm.sh get-roles -r demorealm --rname testrole --cclientid realm-management
  2. 有効な レルムロールを一覧表示するには、 --effective オプションを使用します。

    以下に例を示します。

    $ kcadm.sh get-roles -r demorealm --rname testrole --cclientid realm-management --effective
  3. --available オプションを使用して、ターゲット複合ロールに追加できるレルムロールを一覧表示します。

    以下に例を示します。

    $ kcadm.sh get-roles -r demorealm --rname testrole --cclientid realm-management --available

レルムロールの複合ロールへの追加

Red Hat Single Sign-On には、レルムロールおよびクライアントロールを追加するための add-roles コマンドがあります。

この例では、user ロールを複合ロール testrole に追加します。

$ kcadm.sh add-roles --rname testrole --rolename user -r demorealm

複合ロールからのレルムロールの削除

Red Hat Single Sign-On は、レルムロールおよびクライアントロールを削除する remove-roles コマンドを提供します。

以下の例では、ターゲット複合ロール testrole から user ロールを削除します。

$ 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

クライアントロールへのクライアントロールの追加

  1. get-roles コマンドを使用して、複合クライアントロールの ID を確認します。

    以下に例を示します。

    $ kcadm.sh get-roles -r demorealm --cclientid test-client --rolename operations
  2. test-client という名前の clientId 属性、support という名前のクライアントロール、および operations という名前のクライアントロールでクライアントが存在する場合には、ID が "fc400897-ef6a-4e8c-872b-1581b7fa8a71" び複合ロールになります。
  3. 以下の例を使用して、別のロールを複合ロールに追加します。

    $ kcadm.sh add-roles -r demorealm --cclientid test-client --rid fc400897-ef6a-4e8c-872b-1581b7fa8a71 --rolename support
  4. 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-managementcreate-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