第2章 管理 REST API
Red Hat Single Sign-On には、管理コンソールの全機能が含まれる、完全に機能する管理 REST API が同梱されています。
API を呼び出すには、適切なパーミッションでアクセストークンを取得する必要があります。必要なパーミッションは、サーバー管理ガイドで説明しています。
Red Hat Single Sign-On を使用してアプリケーションの認証を有効にすることで、トークンを取得できます。アプリケーションおよびサービスのセキュリティー保護ガイドを参照してください。直接アクセス許可を使用して、アクセストークンを取得することもできます。
2.1. CURL の使用例
2.1.1. ユーザー名とパスワードでの認証
手順
ユーザー名
admin
およびパスワードpassword
を使用して、master
レルムのユーザーのアクセストークンを取得します。curl \ -d "client_id=admin-cli" \ -d "username=admin" \ -d "password=password" \ -d "grant_type=password" \ "http://localhost:8080/auth/realms/master/protocol/openid-connect/token"
注記デフォルトでは、このトークンは 1 分で有効期限が切れます。
結果は JSON 形式のドキュメントになります。
-
access_token
プロパティーの値を抽出して、必要な API を呼び出します。 API へのリクエストの
Authorization
ヘッダーに値を追加して、API を呼び出します。以下の例は、master レルムの詳細を取得する方法を示しています。
curl \ -H "Authorization: bearer eyJhbGciOiJSUz..." \ "http://localhost:8080/auth/admin/realms/master"
2.1.2. サービスアカウントでの認証
client_id
および client_secret
を使用し、Admin REST API に対して認証するには、この手順を実行します。
手順
クライアントが次のように設定されていることを確認してください。
-
client_id
は、レルム マスター に所属する 機密 クライアントです。 -
client_id
がService Accounts Enabled
オプションを有効にしています。 client_id
には、カスタムの "Audience" マッパーがあります。-
含まれるクライアントオーディエンス:
security-admin-console
-
含まれるクライアントオーディエンス:
-
-
Service Account Roles タブで
client_id
に admin というロールが割り当てられていることを確認します。
curl \ -d "client_id=<YOUR_CLIENT_ID>" \ -d "client_secret=<YOUR_CLIENT_SECRET>" \ -d "grant_type=client_credentials" \ "http://localhost:8080/auth/realms/master/protocol/openid-connect/token"