「[[マイクロソフト系技術情報 Wiki>http://techinfoofmicrosofttech.osscons.jp/]]」は、「[[Open棟梁Project>https://github.com/OpenTouryoProject/]]」,「[[OSSコンソーシアム .NET開発基盤部会>https://www.osscons.jp/dotNetDevelopmentInfrastructure/]]」によって運営されています。 -[[戻る>OpenID Connect]] * 目次 [#r5d86f62] #contents *概要 [#qae6a8c8] Finalを参照して記述。 Client(RP)が、([[Discovery>OpenID Connect - Discovery]]で発見した)Idp(OP)に、動的な登録を行う、~ 「クライアント登録エンドポイント」の仕様について記載してある。 *詳細 [#i6dcb77f] TLSサポートと、TLS証明書のチェックが必要。 **クライアント・メタデータ [#g8c43bbe] ***用途 [#zfff9bfe] クライアント・メタデータの値は、次の2つの方法で使用される。 -入出力値 --入力値: 登録要求時の --出力値: 登録応答および読み取り応答の -[[OpenID Connect]]によって使用される。 ***一覧 [#d8f5ca0e] |#|パラメタ|要件|説明|h |1|redirect_uris|&color(red){REQUIRED};|登録したクライアントのredirect_uriのJSON配列| |2|response_types|OPTIONAL|[[response_type>OpenID Connect#aff816e3]]値のJSON配列。既定値は「code」。| |3|grant_types|OPTIONAL|[[grant_type>OAuth#p23cde9e]]値のJSON配列。既定値は「authorization_code」。| |4|application_type|OPTIONAL|native or webのJSON配列。既定値は「web」。| |5|contacts|OPTIONAL|クライアントを担当する担当者の電子メールアドレスの配列。| |6|client_name|OPTIONAL|クライアントがエンドユーザに提示する、クライアント名。| |7|logo_uri|OPTIONAL|クライアントがエンドユーザに提示する、アプリケーションのロゴのURL。| |8|client_uri|OPTIONAL|クライアントがエンドユーザに提示する、ホームページのURL。| |9|policy_uri|OPTIONAL|クライアントがエンドユーザに提示する、プロファイル利用規約のURL。| |10|tos_uri|OPTIONAL|クライアントがエンドユーザに提示する、サービス利用規約のURL。| |13|subject_type|OPTIONAL|[[subクレームの種類(public or pairwise)>OpenID Connect#cf801b20]]| |14|sector_identifier_uri|OPTIONAL|[[pairwise値の計算に利用する>OpenID Connect#cf801b20]](pairwiseをサポートする場合は必須)。| -暗号関連 |#|パラメタ|要件|説明|h |1|jwks|OPTIONAL|[[JWK Set>JWK#j5494828]]| |2|jwks_uri|OPTIONAL|[[jwks_uri>OpenID Connect - 暗号関連#tdf4ee76]]| |3|id_token_signed_response_alg|OPTIONAL|[[IDトークン>OpenID Connect - IDトークン]]署名アルゴリズム&br;([[Discoveryのid_token_signing_alg_values_supported>OpenID Connect - Discovery#w858cfce]]に対応)&br;既定値はRS256。| |3|id_token_encrypted_response_alg|OPTIONAL|[[IDトークン>OpenID Connect - IDトークン]]暗号化アルゴリズム&br;([[Discoveryのid_token_encryption_alg_values_supported>OpenID Connect - Discovery#w858cfce]]に対応)| |4|id_token_encrypted_response_enc|OPTIONAL|[[IDトークン>OpenID Connect - IDトークン]]暗号化アルゴリズム&br;([[Discoveryのid_token_encryption_enc_values_supported>OpenID Connect - Discovery#w858cfce]]に対応)| |5|userinfo_signed_response_alg|OPTIONAL|[[ユーザー属性エンドポイント>OpenID Connect - ユーザー属性クレーム関連#k1d9c845]]署名アルゴリズム&br;([[Discoveryのuserinfo_signing_alg_values_supported>OpenID Connect - Discovery#w858cfce]]に対応)| |6|userinfo_encrypted_response_alg|OPTIONAL|[[ユーザー属性エンドポイント>OpenID Connect - ユーザー属性クレーム関連#k1d9c845]]暗号化アルゴリズム&br;([[Discoveryのuserinfo_encryption_alg_values_supported>OpenID Connect - Discovery#w858cfce]]に対応)| |7|userinfo_encrypted_response_enc|OPTIONAL|[[ユーザー属性エンドポイント>OpenID Connect - ユーザー属性クレーム関連#k1d9c845]]暗号化アルゴリズム&br;([[Discoveryのuserinfo_encryption_enc_values_supported>OpenID Connect - Discovery#w858cfce]]に対応)| |8|||| |9|||| |10|||| |11|||| |12|||| |13|||| |14|||| **エンドポイントURL [#n38a9d2e] **登録リクエスト & レスポンス [#b0007958] ***登録リクエスト [#j84b36aa] ***登録レスポンス [#xaa258be] 登録メタデータとともに、プロビジョニングされたフィールドを含めて返す。 -パラメタ一覧 --成功 |#|パラメタ|要件|説明|h |1|client_id|&color(red){REQUIRED};|登録したクライアントのclient_id| |2|client_id_issued_at|OPTIONAL|client_idが発行された時刻。| |3|client_secret|OPTIONAL|登録したクライアントのclient_secret&br;(PKCEやprivate_key_jwtなどのケースがあるので)| |4|client_secret_expires_at|&color(red){REQUIRED};|client_secretが期限切れになる時刻。&br;(client_secretが発行された場合は必須)| |5|registration_access_token|OPTIONAL|後続のクライアント登録操作を実行するためのアクセストークン。| |6|registration_client_uri|OPTIONAL|前述のregistration_access_tokenを使用して、&br;後続のクライアント登録操作を実行するための構成エンドポイントの場所。| --失敗~ [[RFC 6750 - Bearer Token Usage>OAuth#d65223fc]]のSection 3と同じ。 -例 --成功 HTTP/1.1 201 Created Content-Type: application/json Cache-Control: no-store Pragma: no-cache { "client_id": "s6BhdRkqt3", "client_secret": "ZJYCqe3GGRvdrudKyZS0XhGv_Z45DuKhCUk0gBR1vZk", "client_secret_expires_at": 1577858400, "registration_access_token": "this.is.an.access.token.value.ffx83", "registration_client_uri": "https://server.example.com/connect/register?client_id=s6BhdRkqt3", "token_endpoint_auth_method": "client_secret_basic", "application_type": "web", "redirect_uris": ["https://client.example.org/callback", "https://client.example.org/callback2"], "client_name": "My Example", "client_name#ja-Jpan-JP": "クライアント名", "logo_uri": "https://client.example.org/logo.png", "subject_type": "pairwise", "sector_identifier_uri": "https://other.example.net/file_of_redirect_uris.json", "jwks_uri": "https://client.example.org/my_public_keys.jwks", "userinfo_encrypted_response_alg": "RSA1_5", "userinfo_encrypted_response_enc": "A128CBC-HS256", "contacts": ["ve7jtb@example.org", "mary@example.org"], "request_uris": ["https://client.example.org/rf.txt #qpXaRLh_n93TTR9F252ValdatUQvQiJi5BDub2BeznA"] } --失敗 HTTP/1.1 400 Bad Request Content-Type: application/json Cache-Control: no-store Pragma: no-cache { "error": "invalid_redirect_uri", "error_description": "One or more redirect_uri values are invalid" } *パラメタ [#d6e019d0] **オプション [#la743295] ***[[subクレームの種類>OpenID Connect#cf801b20]] [#e9256189] -subject_type~ public, pairwise -sector_identifier_uri --pairwise identifier の計算に用いる Sector Identifierを登録 --登録されない場合、登録された redirect_uri のホスト部を使用する。 --redirect_urisに複数のrequest_uriが登録されている場合、必須。 **暗号化 [#qb4dd881] ***Requestオブジェクト関連 [#qebcb733] -request_uris~ request_uriを登録する。 ***アルゴリズム関連 [#xc12bcf1] -id_token_signed_response_alg --[[IDトークン>OpenID Connect - IDトークン]]の署名アルゴリズムを登録。 --[[ココ>OpenID Connect - IDトークン#y61f2006]]に関連する。 -userinfo_encrypted_response_alg --[[ユーザー情報エンドポイント>OpenID Connect - ユーザー属性クレーム関連#k1d9c845]]の署名 or / and 暗号化アルゴリズムを登録。 --[[ココ>OpenID Connect - ユーザー属性クレーム関連#k20c216c]]に関連する。 -request_object_signing_alg *考慮事項 [#j9384a67] **実装 [#y0cd7a5a] **セキュリティ [#o8508727] ***偽装 [#m213e5cd] ***ネイティブ・コード・リーク [#afb0a3d7] *参考 [#c016f0b4] -Final: OpenID Connect Dynamic Client Registration 1.0 incorporating errata set 1~ http://openid.net/specs/openid-connect-registration-1_0.html -sat's memo: OpenID Connect Dynamic Client Registration 1.0 - draft 11 日本語私訳~ http://blog.toke.jp/2012/07/openid-connect-dynamic-client.html **[[Discovery>OpenID Connect - Discovery]] [#uc7b23d6] ---- Tags: [[:IT国際標準]], [[:認証基盤]], [[:クレームベース認証]], [[:OAuth]]