20.9. ユーザー操作

ユーザーの作成

users エンドポイントで create コマンドを実行して新規ユーザーを作成します。

以下に例を示します。

$ kcadm.sh create users -r demorealm -s username=testuser -s enabled=true

ユーザーの一覧表示

users エンドポイントを使用してユーザーを一覧表示します。次回ログイン時に、ターゲットユーザーはパスワードを変更する必要があります。

以下に例を示します。

$ kcadm.sh get users -r demorealm --offset 0 --limit 1000

usernamefirstNamelastName、または email でユーザーを絞り込むことができます。

以下に例を示します。

$ kcadm.sh get users -r demorealm -q email=google.com
$ kcadm.sh get users -r demorealm -q username=testuser
注記

フィルタリングは完全一致を使用しません。たとえば、上記の例は、*testuser* パターンに対する username 属性の値と一致します。

複数の属性でフィルターをかけることも可能です。これは、すべての属性の条件と一致するユーザーのみを返す、-q オプションを指定して行います。

特定ユーザーの取得

ユーザーの ID を使用して、users/USER_ID などのエンドポイント URI を作成します。

以下に例を示します。

$ kcadm.sh get users/0ba7a3fd-6fd8-48cd-a60b-2e8fd82d56e2 -r demorealm

ユーザーの更新

update コマンドを、特定のクライアントを取得するために使用したのと同じエンドポイント URI で使用します。

たとえば、以下のようになります。

  • Linux:
$ kcadm.sh update users/0ba7a3fd-6fd8-48cd-a60b-2e8fd82d56e2 -r demorealm -s 'requiredActions=["VERIFY_EMAIL","UPDATE_PROFILE","CONFIGURE_TOTP","UPDATE_PASSWORD"]'
  • Windows:
c:\> kcadm update users/0ba7a3fd-6fd8-48cd-a60b-2e8fd82d56e2 -r demorealm -s "requiredActions=[\"VERIFY_EMAIL\",\"UPDATE_PROFILE\",\"CONFIGURE_TOTP\",\"UPDATE_PASSWORD\"]"

ユーザーの削除

delete コマンドを、特定のクライアントを取得するために使用したのと同じエンドポイント URI で使用します。

以下に例を示します。

$ kcadm.sh delete users/0ba7a3fd-6fd8-48cd-a60b-2e8fd82d56e2 -r demorealm

ユーザーのパスワードのリセット

専用の set-password コマンドを使用して、ユーザーのパスワードをリセットします。

以下に例を示します。

$ kcadm.sh set-password -r demorealm --username testuser --new-password NEWPASSWORD --temporary

このコマンドは、ユーザーに一時パスワードを設定します。次回ログイン時に、ターゲットユーザーはパスワードを変更する必要があります。

id 属性を使用してユーザーを指定する場合は、--userid を使用できます。

users/USER_ID/reset-password など、特定のユーザーから構築されたエンドポイントで update コマンドを使用すると同じ結果が得られます。

以下に例を示します。

$ kcadm.sh update users/0ba7a3fd-6fd8-48cd-a60b-2e8fd82d56e2/reset-password -r demorealm -s type=password -s value=NEWPASSWORD -s temporary=true -n

最後のパラメーター (-n) は、前の GET コマンドなしで PUT コマンドのみが実行されるようにします。reset-password エンドポイントは GET をサポートしないため、このインスタンスには必要です。

ユーザーに割り当てられている利用可能で有効なレルムロールの一覧表示

ユーザーに割り当てられ、利用可能な、有効なレルムロールを一覧表示するには、専用の get-roles コマンドを使用できます。

  1. ユーザーに 割り当てられた レルムロールを一覧表示するには、ユーザー名または ID のいずれかでターゲットユーザーを指定します。

    以下に例を示します。

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

    以下に例を示します。

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

    以下に例を示します。

    $ kcadm.sh get-roles -r demorealm --uusername testuser --available

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

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

  1. ユーザー名 (--uusername オプション) または ID (--uid オプション) のいずれかでターゲットユーザーを指定し、clientId 属性 (--cclientid オプション) または ID (--cid オプション) のいずれかでクライアントを指定して、そのユーザーに対する assigned クライアントロールを一覧表示します。

    以下に例を示します。

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

    以下に例を示します。

    $ kcadm.sh get-roles -r demorealm --uusername testuser --cclientid realm-management --effective
  3. --available オプションを使用して、ユーザーに追加できるレルムロールを一覧表示します。

    以下に例を示します。

    $ kcadm.sh get-roles -r demorealm --uusername testuser --cclientid realm-management --available

レルムロールのユーザーへの追加

レルムロールをユーザーに追加するには、専用の add-roles コマンドを使用します。

以下の例を使用して、user ロールを testuser ユーザーに追加します。

$ kcadm.sh add-roles --uusername testuser --rolename user -r demorealm

ユーザーからのレルムロールの削除

ユーザーからレルムロールを削除するには、専用の remove-roles コマンドを使用します。

以下の例を使用して、ユーザー testuser から user ロールを削除します。

$ kcadm.sh remove-roles --uusername testuser --rolename user -r demorealm

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

専用の add-roles コマンドを使用して、クライアントロールをユーザーに追加します。

以下の例を使用して、クライアントの レルム管理 で定義された 2 つのロールを追加します (create-client ロールと view-users ロールをユーザー testuser に追加します)。

$ kcadm.sh add-roles -r demorealm --uusername testuser --cclientid realm-management --rolename create-client --rolename view-users

ユーザーからのクライアントロールの削除

専用の remove-roles コマンドを使用して、クライアントロールをユーザーから削除します。

以下の例を使用して、レルム管理クライアントで定義された 2 つのロールを削除します。

$ kcadm.sh remove-roles -r demorealm --uusername testuser --cclientid realm-management --rolename create-client --rolename view-users

ユーザーのセッションの一覧表示

  1. ユーザーの ID を特定し、これを使用して users/ID/sessions などのエンドポイント URI を作成します。
  2. get コマンドを使用して、ユーザーのセッションの一覧を取得します。

    以下に例を示します。

    $kcadm get users/6da5ab89-3397-4205-afaa-e201ff638f9e/sessions

特定のセッションからユーザーをログアウト

  1. 上記のようにセッションの ID を決定します。
  2. セッションの ID を使用して、sessions/ID などのエンドポイント URI を作成します。
  3. delete コマンドを使用してセッションを無効にします。

    以下に例を示します。

    $ kcadm.sh delete sessions/d0eaa7cc-8c5d-489d-811a-69d3c4ec84d1

全セッションからユーザーをログアウト

users/ID/logout などのエンドポイント URI を作成するには、ユーザーの ID が必要です。

create コマンドを使用して、そのエンドポイント URI で POST を実行します。

以下に例を示します。

$ kcadm.sh create users/6da5ab89-3397-4205-afaa-e201ff638f9e/logout -r demorealm -s realm=demorealm -s user=6da5ab89-3397-4205-afaa-e201ff638f9e