(O+P)ut

アウトプット



(O+P)ut

エンジニアのアウトプット

【Keycloak/RHBK】AdminAPIでユーザ名からidを取得する

スポンサーリンク

やりたいこと

Red Hat build of Keycloak(Keycloakの商用版)にてAdmin API経由でユーザ名(username)からidを取得する。

環境情報
  • Red Hat Enterprise Linux : 9.3 (Plow)
  • rhbk-22.0.8

やり方

アクセストークンの取得を行い

$ AT=`curl --insecure -X POST http://localhost:8080/realms/master/protocol/openid-connect/token --user admin-cli:admin -H 'content-type: application/x-www-form-urlencoded' -d 'username=admin&password=xx&grant_type=password' | jq .access_token | sed -e 's/"//g'`

アクセストークンを引数に渡した上で「GET /admin/realms/{realm}/users?search=XX」を利用すると(XXは検索したいユーザ名)

$ curl -k -X GET http://localhost:8080/admin/realms/master/users?search=test-user02 -H "Authorization: Bearer "$AT | jq .

JSON形式で出力ができる。

[
  {
    "id": "XX-XX-XX-XX",
    "createdTimestamp": ...,
    "username": "test-user02",
 ...
    }
  }
]

以下、補足です。

補足

以下記事のように個別ユーザに対して操作を行う場合はidと呼ばれるユーザ固有の値が必要ですが同値は内部的にKeycloakが採番するためユーザは分かりません。

よってユーザ名からIDを取得する必要があります。

尚、同検索は前方一致の仕様なので該当するユーザが複数いる場合は全て表示されてしまう点は注意が必要です。

以上、ご参考になれば幸いです。