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
username
、firstName
、lastName
、または 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
コマンドを使用できます。
ユーザーに 割り当てられた レルムロールを一覧表示するには、ユーザー名または 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
オプション) のいずれかでクライアントを指定して、そのユーザーに対する assigned クライアントロールを一覧表示します。以下に例を示します。
$ 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 を特定し、これを使用して
users/ID/sessions
などのエンドポイント URI を作成します。 get
コマンドを使用して、ユーザーのセッションの一覧を取得します。以下に例を示します。
$kcadm get users/6da5ab89-3397-4205-afaa-e201ff638f9e/sessions
特定のセッションからユーザーをログアウト
- 上記のようにセッションの ID を決定します。
-
セッションの ID を使用して、
sessions/ID
などのエンドポイント URI を作成します。 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