18.5. 基本操作およびリソース URI
管理 CLI は、特定のタスクを単純化する追加のコマンドを使用して、管理 REST API エンドポイントに対して CRUD 操作を汎用的に実行できます。
主な使用方法パターンを以下に示します。
$ kcadm.sh create ENDPOINT [ARGUMENTS] $ kcadm.sh get ENDPOINT [ARGUMENTS] $ kcadm.sh update ENDPOINT [ARGUMENTS] $ kcadm.sh delete ENDPOINT [ARGUMENTS]
create
、get
、update
、および delete
コマンドは HTTP 動詞である POST
、GET
、PUT
、DELETE
にそれぞれマップします。ENDPOINT はターゲットリソース URI であり、絶対 (http:
または https:
で始まる) または相対 (Red Hat Single Sign-On が次の形式で絶対 URL を作成するために使用する) のいずれかに設定できます。
SERVER_URI/admin/realms/REALM/ENDPOINT
たとえば、サーバー http://localhost:8080/auth に対して認証し、レルムが master
である場合は、users
を ENDPOINT として使用すると http://localhost:8080/auth/admin/realms/master/users のリソース URL となります。
ENDPOINT を clients
に設定する場合、有効なリソース URI は http://localhost:8080/auth/admin/realms/master/clients になります。
Red Hat Single Sign-On には、レルムのコンテナーである realms
エンドポイントがあります。以下に対して解決します。
SERVER_URI/admin/realms
Red Hat Single Sign-On には serverinfo
エンドポイントがあります。このエンドポイントはレルムとは独立しています。
realm-admin 権限を持つユーザーとして認証する場合は、複数のレルムでコマンドを実行する必要がある場合があります。その場合は、 -r
オプションを指定して、コマンドを明示的に実行するレルムを CLI に指示します。kcadm.sh config credentials
の --realm
オプションで指定された REALM
を使用する代わりに、コマンドは TARGET_REALM
を使用します。
SERVER_URI/admin/realms/TARGET_REALM/ENDPOINT
以下に例を示します。
$ kcadm.sh config credentials --server http://localhost:8080/auth --realm master --user admin --password admin $ kcadm.sh create users -s username=testuser -s enabled=true -r demorealm
この例では、master
レルムで admin
ユーザーとして認証されたセッションを開始します。その後、リソース URL http://localhost:8080/auth/admin/realms/demorealm/users
に対して POST 呼び出しを実行します。
create
および update
コマンドは、JSON ボディーをサーバーに送信します。-f FILENAME
を使用して、ファイルから既製のドキュメントを読み取ることができます。-f --
オプションを使用できる場合、Red Hat Single Sign-On は標準入力からメッセージ本文を読み取ります。ユーザーの作成
の例にあるように、個別の属性とその値を指定できます。Red Hat Single Sign-On は、属性を JSON 本文に設定し、サーバーに送信します。
Red Hat Single Sign-On では、update
コマンドを使用してリソースを更新する方法はいくつかあります。まず、リソースの現在の状態を決定してファイルに保存し、そのファイルを編集して更新のためにサーバーに送信できます。
以下に例を示します。
$ kcadm.sh get realms/demorealm > demorealm.json $ vi demorealm.json $ kcadm.sh update realms/demorealm -f demorealm.json
このメソッドは、送信された JSON ドキュメントの属性でサーバーのリソースを更新します。
別のオプションとして、-s, --set
オプションを使用してオンザフライで更新を実行し、新しい値を設定することもできます。
以下に例を示します。
$ kcadm.sh update realms/demorealm -s enabled=false
このメソッドは、enabled
属性を false
に設定します。
デフォルトでは、update
コマンドは get
を実行し、新しい属性値を既存の値とマージします。エンドポイントが PUT
コマンドをサポートするかもしれませんが、GET
コマンドではない場合もあります。-n
オプションを使用して no-merge 更新を実行できます。これは、GET
コマンドを最初に実行せずに PUT
コマンドを実行します。