18.10. ユーザー操作
ユーザーの作成
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
username
、firstName
、lastName
、または email
でユーザーを絞り込むことができます。
以下に例を示します。
$ kcadm.sh get users -r demorealm -q q=email:google.com $ kcadm.sh get users -r demorealm -q q=username:testuser
フィルタリングは完全一致を使用しません。この例では、*testuser*
パターンに対して username
属性の値と一致します。
クライアント、グループ、およびユーザーは、より複雑な q
クエリーパラメーターを指定することで、複数の属性でフィルタリングできます。-q q="field1:value1 field2:value2" のようなものを使用することができます。Red Hat build of Keycloak は、すべての属性の条件に一致するユーザーを返します。
特定ユーザーの取得
ユーザーの 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
パラメーターを使用すると、Red Hat build of Keycloak は PUT
コマンドの前に GET
コマンドを実行しなくても、PUT
コマンドを実行できます。reset-password
エンドポイントは GET
に対応していないため、この設定が必要です。
ユーザーに割り当てられている利用可能で有効なレルムロールのリスト表示
ユーザーに割り当てられ、利用可能で有効なレルムロールをリスト表示するには、get-roles
コマンドを使用できます。
割り当てられた ユーザーのレルムロールをリスト表示するには、ユーザー名または ID でターゲットユーザーを指定します。
以下に例を示します。
$ kcadm.sh get-roles -r demorealm --uusername testuser
有効な レルムロールをリスト表示するには、
--effective
オプションを使用します。以下に例を示します。
$ kcadm.sh get-roles -r demorealm --uusername testuser --effective
--available
オプションを使用して、ユーザーに追加できるレルムロールをリスト表示します。以下に例を示します。
$ kcadm.sh get-roles -r demorealm --uusername testuser --available
ユーザーに割り当てられている利用可能で有効なクライアントロールのリスト表示
ユーザーに割り当てられ、利用可能で有効なクライアントロールをリスト表示するには、get-roles
コマンドを使用します。
ユーザー名 (
--uusername
オプション) または ID(--uid
オプション) でターゲットユーザーを指定し、clientId 属性 (--cclientid
オプション) または ID(--cid
オプション) でクライアントを指定して、そのユーザーに 割り当てられた クライアントロールをリスト表示します。以下に例を示します。
$ kcadm.sh get-roles -r demorealm --uusername testuser --cclientid realm-management
有効な レルムロールをリスト表示するには、
--effective
オプションを使用します。以下に例を示します。
$ kcadm.sh get-roles -r demorealm --uusername testuser --cclientid realm-management --effective
--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
ユーザーのセッションのリスト表示
- ユーザーの ID を特定します。
-
ID を使用して、
users/ID/sessions
などのエンドポイント URI を作成します。 get
コマンドを使用して、ユーザーのセッションのリストを取得します。以下に例を示します。
$ kcadm.sh get users/6da5ab89-3397-4205-afaa-e201ff638f9e/sessions -r demorealm
特定のセッションからユーザーをログアウト
- 上記のようにセッションの ID を決定します。
-
セッションの ID を使用して、
sessions/ID
などのエンドポイント URI を作成します。 delete
コマンドを使用してセッションを無効にします。以下に例を示します。
$ kcadm.sh delete sessions/d0eaa7cc-8c5d-489d-811a-69d3c4ec84d1 -r demorealm
全セッションからユーザーをログアウト
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