やりたいこと
Red Hat build of Keycloak(Keycloakの商用版)にてAdmin API経由でクライアントリソース(client resource)を作成する。
環境情報
- Red Hat Enterprise Linux : 9.3 (Plow)
- rhbk-22.0.8
やり方
アクセストークン及びリソースを作成したいクライアントのIDを用意した上で以下のようにPOSTを行う。
$ curl --location --request POST 'http://localhost:8080/admin/realms/master/clients/XX/authz/resource-server/resource' --header 'Content-Type: application/json' --header "Authorization: Bearer $AT" --data-raw '{"name":"test_resource","displayName":"testr","type":"","scopes":[],"icon_uri":"","ownerManagedAccess":false,"uris":["/test",""],"attributes":{}}'
成功した場合は標準出力はないが、コンソールから”Clients”→"Resources"より確認ができる。
以下、補足です。
補足
クライアントのIDはget clientsのidという値から確認が可能です。
$ ./kcadm.sh get clients | jq . ... { "id": "xx-xx-xx-xx-xx", ...
尚、作成したリソースは同じくAdminAPI経由でも確認が可能です。
# curl --location --request GET 'http://localhost:8080/admin/realms/master/clients/XX/authz/resource-server/resource' --header 'Content-Type: application/json' --header "Authorization: Bearer $AT" | jq . ... { "name": "test_resource", "owner": { "id": "...", "name": "testclient" }, "ownerManagedAccess": false, "displayName": "testr", "attributes": {}, "_id": "xx", "uris": [ "/test" ], "icon_uri": "" } ]
以上、ご参考になれば幸いです。