やりたいこと
Red Hat build of Keycloak(Keycloakの商用版)にて任意のユーザのアカウントロック(アカウントの無効化)を取得する。
環境情報
- Red Hat Enterprise Linux : 9.3 (Plow)
- rhbk-22.0.8
やり方
ユーザのIDをURIに付与した状態でenabled
をtrue
からfalse
に変更する。
$ curl --location --request PUT 'http://localhost:8080/admin/realms/master/users/'"$id"'' --header 'Content-Type: application/json' --header "Authorization: Bearer $AT" --data-raw '{"enabled":"false"}'
尚、ユーザのIDは以下のようなjqコマンドで取得が可能。
$ curl -k -X GET http://localhost:8080/admin/realms/master/users -H "Authorization: Bearer "$AT | jq -r '.[] | select(.username == "'"$username"'") | .id'
以下、補足です。
補足
GUIでは管理コンソールから「Enabled」「Disabled」と操作ができる同項目ですが、Admin APIを利用して変更することもできます。元に戻す場合はfalseをtrueとします。
ちなみにアカウントロック状態で正しいユーザ名/パスワードを入れると
Account is disabled, contact your administrator.
という専用のメッセージが表示されます。
尚、アカウントロック状態でもパスワードが誤っている場合はユーザに通知をせずに以下のようなメッセージが表示されます。
Invalid username or password.
以上。