動的クライアント登録
OpenID Connect (OIDC) の依拠当事者 (RP) は、Dynamic Client Registration を使用して自身を OpenID Connectプロバイダー (OP) に登録できます。
始める前に
ダイナミッククライアント登録は、 Connect OpenID ダイナミッククライアント登録仕様に基づいています 1.0。
新しい OIDC アプリケーションは、テナント管理者、またはテナントに対する管理アクセス権限を持つユーザーによって作成されます。 現在は、適切な資格を持つ API クライアントも、動的クライアント登録エンドポイントを通じて OIDC アプリケーションを作成できます。 作成されるアプリケーションは、サインオン方式が OpenID Connect に設定された「カスタム・アプリケーション」です。
動的クライアント登録エンドポイントは、https://{{tenant}}/v1.0/endpoint/default/client_registrationにあります。
要件を満たしている場合は、新しい動的クライアント登録エンドポイントを使用することを検討してください。 詳しくは、 新しい OpenID Connect プロバイダーによる動的クライアント登録を参照してください。
このタスクについて
クライアントを動的に登録するには、初期アクセス・トークンを取得してから、登録 API を使用して新規 OIDC アプリケーションを登録します。
新規クライアントを登録する前に、動的クライアント登録設定を確認してください。動的クライアント登録設定
動的クライアント登録設定は、動的クライアント登録のデフォルト値を設定するように構成できます。 OIDC 動的クライアント登録設定の構成を参照してください。
以下の表で、関連する設定について説明します。
| フィールド | 説明 |
|---|---|
| 付与タイプ | 動的クライアント登録ペイロードで指定されていない場合に使用する付与タイプ。 サポートされる付与タイプは、「許可コード」、「暗黙」、「パスワード」、「デバイス・フロー」、「JWT ベアラー」、および「リフレッシュ・トークン」です。 |
| ID トークン・クレーム | ID トークンおよびユーザー情報のデフォルトのクレーム (動的クライアント登録ペイロードで指定されていない場合)。 |
| トークンの請求 | イントロスペクションおよび JWT アクセス・トークンのデフォルト・クレーム (動的クライアント登録ペイロードで指定されていない場合)。 |
| アクセス・トークンのタイプ | 生成されるアクセス・トークンのタイプ。 有効な値は 'default' および 'JWT' です。 |
| ID トークン署名アルゴリズム | 動的クライアント登録ペイロードで指定されていない場合に、ID トークンに署名するために使用されるアルゴリズム。 |
| ユーザーの同意 | 動的クライアント登録ペイロードでユーザーの同意を要求するかどうかを選択します (指定されていない場合)。 |
| アクセス・トークン存続時間 | アクセス・トークンの存続時間 (秒)。 最大 2147483647、最小 1。 |
| リフレッシュ・トークン存続時間 | リフレッシュ・トークンの存続時間 (秒)。 最大 2147483647、最小 1。 |
| PKCE を強制的に検証 | 動的クライアント登録ペイロードで指定されていない場合に PKCE を適用するかどうかを選択します。 |
| すべてのユーザーに資格を付与 | 動的クライアント登録ペイロードで指定されていない場合に、すべてのユーザーがこのクライアントを使用する資格があるかどうかを判別します。 |
| カスタム・クライアント資格情報を許可 | カスタム・クライアント資格情報が許可されるかどうかを決定します。 「false」に設定した場合、動的クライアント登録ペイロードにクライアント ID と秘密鍵を指定することはできません。 |
設定の「Software statement」、「Request authorization」、および「Registration access token」の各セクションは、この OpenID Connect プロバイダーには関係ありません。
初期アクセス・トークンの取得
動的クライアント登録エンドポイントにアクセスするには、Manage
OIDC client registration dynamically資格を持つアクセス・トークンを使用します。
Manage OIDC client registration dynamically資格を持つ API クライアントを作成します。 APIクライアントを作成するには、 APIクライアントの作成を参照してください。
API クライアントを作成したら、client_credentials フローを使用してアクセス・トークンを取得します。 以下の例を参照してください。
curl -ki -v https://{{tenant}}/v1.0/endpoint/default/`token -d "grant_type=client_credentials&client_id=<clientId>&client_secret=<clientSecret>"
登録 API を使用した新規アプリケーションの登録
前のセクションで作成したアクセス・トークンを使用して、新しい OIDC アプリケーションを作成できます。
以下の表に、現在サポートされているクライアント・メタデータのリストを示します。
| メタデータ名 | メタデータの説明 | オプション | 有効値 |
|---|---|---|---|
| client_name | アプリケーション名 | はい | ストリング |
| client_id | クライアント ID が指定されていない場合は、自動的に生成されます。 | はい | ストリング |
| client_secret | クライアント・シークレットが指定されていない場合は、自動的に生成されます。 | はい | ストリング |
| redirect_uris | リダイレクト URI のリスト | false | ストリング URI のリスト |
| grant_types | アプリケーションが使用できる付与タイプの配列。 | はい | 'authorization_code'、'implicit'、'password'、'urn:ietf:params: oauth:grant-type:device_code'、'urn:ietf:params: oauth:grant-type:jwt-bearer'、および 'refresh_token' |
| id_token_signed_response_alg | トークン署名アルゴリズム。 | はい | 'RS256', 'RS384', 'RS512', 'HS256', 'HS384', 'HS512', 'ES256', 'ES384', 'ES512', 'PS256', 'PS384', 'PS512' |
| all_users_entitled | このアプリケーションを使用する資格をすべてのユーザーに付与する場合は、true に設定します | はい | true または false |
| jwks_uri | クライアントの JSON Web Key Set ドキュメントの URL。 | はい | URL |
| consent_action | ユーザーの同意の要求。 | はい | 「never_prompt」または「always_prompt」 |
| enforce_pkce | PKCE の強制的な使用。 | はい | true または false |
| id_token_claims | id_token およびユーザー情報のクレームのリスト。 | はい | ストリングのリスト |
| token_claims | イントロスペクトおよび JWT アクセス・トークンのクレームのリスト。 | はい | ストリングのリスト |
| initiate_login_uri | ログインを開始する URL。 | はい | URL |
| token_endpoint_auth_method | トークン・エンドポイントのクライアント認証方式。 | はい | 'default'、'client_secret_basic '、'client_secret_post'、'client_secret_jwt '、'private_key_jwt' |
新規アプリケーションの登録の例
curl -ki -H "Authorization: bearer <access-token>" -H "Content-Type:application/json" -X POST https://{{tenant}}/v1.0/endpoint/default/client_registration --data-binary '{"redirect_uris":["https://www.redirect.com"],"client_name":"MyApplication"}'応答 (response){
"grant_types": [
"authorization_code"
],
"client_secret_expires_at": "0",
"registration_client_uri": "https://{{tenant}}/v1.0/endpoint/default/client_registration/<clientId>",
"client_secret": "<client_secret>",
"redirect_uris": [
"https://www.redirect.com"
],
"client_id_issued_at": "1586933118",
"client_name": "MyApplication",
"registration_access_token": "<access_token>",
"client_id": "<clientId>",
"id_token_signed_response_alg": "RS256"
}アプリケーションの追加構成
アプリケーションが作成されると、アプリケーション用に構成できる追加のオプション (属性マッピング、アクセス・ポリシー、ID ソース、資格を持つユーザーなど) が存在します。 これらのオプションを構成するには、OpenID Connect プロバイダーでのシングル・サインオンの構成を参照してください。
登録 API を使用して更新するオプションはサポートされていません。
登録 API を使用した OIDC アプリケーションの読み取り
curl -ki -H "Authorization: bearer <registration-access-token>" https://{{tenant}}/v1.0/endpoint/default/client_registration/<clientId>登録 API を使用した OIDC アプリケーションの削除
登録 API では、OIDC アプリケーションを削除することもできます。
curl -ki -H "Authorization: bearer <registration-access-token>" -X DELETE https://{{tenant}}/v1.0/endpoint/default/client_registration/<clientId>
登録アクセス・トークンの有効期限切れ
登録アクセス・トークンの期限が切れた場合は、新しいアクセス・トークンを取得します。 「 初期アクセス・トークンの取得」を参照してください。