動的クライアント登録
OpenID Connect (OIDC) の依拠当事者 (RP) は、Dynamic Client Registration を使用して自身を OpenID Connectプロバイダー (OP) に登録できます。
始める前に
動的クライアント登録は、 OpenID の「Connect Dynamic Client Registration」 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およびシークレットを指定することはできません。 |
設定内の「ソフトウェアステートメント」、「認証の要求」、「アクセストークンの登録」の各セクションは、この 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>
登録アクセス・トークンの有効期限切れ
登録アクセス・トークンの期限が切れた場合は、新しいアクセス・トークンを取得します。 「初期アクセストークンの取得」 を参照してください。