- 追加された行はこの色です。
- 削除された行はこの色です。
「[[マイクロソフト系技術情報 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]]によって使用される。
***多言語化 [#j8554af5]
-client_name、tos_uri、policy_uri、logo_uri、およびclient_uriなどの値は、~
一部のクライアント登録で複数のロケール固有の値を持つことがある。
-この場合、同様に、[[言語タグ>OpenID Connect - ユーザー属性クレーム関連#u1556f80]]を使用する。
***一覧 [#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をサポートする場合は必須)。|
|4|subject_type|OPTIONAL|[[subject_types_supported>OpenID Connect - Discovery#t527fffb]]に対応する[[subクレームの種類(public or pairwise)>OpenID Connect#cf801b20]]|
|5|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||||
|1|default_max_age|OPTIONAL|デフォルトの最大認証期間。max_age要求パラメタの既定値。|
|2|require_auth_time|OPTIONAL|[[IDトークン>OpenID Connect - IDトークン]]のauth_time要求の要否|
|3|token_endpoint_auth_method|OPTIONAL|[[クライアント認証>OpenID Connect - クライアント認証]]のタイプ。&br;既定値はclient_secret_basic。|
|4|default_acr_values|OPTIONAL|デフォルトの[[認証コンテキスト クラス>OpenID Connect - Authentication Context Class Reference]]参照値。acr_values要求パラメタの既定値。|
|5|request_uris|OPTIONAL|事前に登録されたrequest_uri値の配列。&br;[[Discovery の require_request_uri_registration>OpenID Connect - Discovery#z9123ea9]]で事前登録要求可能|
|6|initiate_login_uri|OPTIONAL|[[ログイン開始エンドポイント>OpenID Connect#ze94647d]]のURL|
**エンドポイントURL [#n38a9d2e]
-クライアント情報パラメタ
|#|パラメタ|要件|説明|h
|1|application_type|OPTIONAL|native or webのJSON配列。既定値は「web」。|
|2|contacts|OPTIONAL|クライアントを担当する担当者の電子メールアドレスの配列。|
|3|client_name|OPTIONAL|クライアントがエンドユーザに提示する、クライアント名。|
|4|logo_uri|OPTIONAL|クライアントがエンドユーザに提示する、アプリケーションのロゴのURL。|
|5|client_uri|OPTIONAL|クライアントがエンドユーザに提示する、ホームページのURL。|
|6|policy_uri|OPTIONAL|クライアントがエンドユーザに提示する、プロファイル利用規約のURL。|
|7|tos_uri|OPTIONAL|クライアントがエンドユーザに提示する、サービス利用規約のURL。|
**登録リクエスト & レスポンス [#b0007958]
-暗号関連パラメタ
|#|>|パラメタ|要件|説明|h
|1|>|>|>|[[JWK]]|
|1-1||jwks|OPTIONAL|[[JWK Set>JWK#j5494828]]|
|1-2||jwks_uri|OPTIONAL|[[jwks_uri>OpenID Connect - 暗号関連#tdf4ee76]]|
|2|>|>|>|[[クライアント認証>OpenID Connect - クライアント認証]]|
|2-1|>|token_endpoint_auth_signing_alg|OPTIONAL|[[クライアント認証>OpenID Connect - クライアント認証]]署名アルゴリズム&br;([[Discovery の token_endpoint_auth_signing_alg_values_supported>OpenID Connect - Discovery#w858cfce]]に対応)&br;既定値はRS256, 署名なし不可。|
|3|>|>|>|[[IDトークン>OpenID Connect - IDトークン]]|
|3-1||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-2||id_token_encrypted_response_alg|OPTIONAL|[[IDトークン>OpenID Connect - IDトークン]]暗号化アルゴリズム&br;([[Discovery の id_token_encryption_alg_values_supported>OpenID Connect - Discovery#w858cfce]]に対応)&br;既定値は暗号化なし。|
|3-3||id_token_encrypted_response_enc|OPTIONAL|[[IDトークン>OpenID Connect - IDトークン]]暗号化アルゴリズム&br;([[Discovery の id_token_encryption_enc_values_supported>OpenID Connect - Discovery#w858cfce]]に対応)&br;既定値はA128CBC-HS256(algがあれば必要)。|
|4|>|>|>|[[ユーザー属性エンドポイント>OpenID Connect - ユーザー属性クレーム関連#k1d9c845]]|
|4-1||userinfo_signed_response_alg|OPTIONAL|[[ユーザー属性エンドポイント>OpenID Connect - ユーザー属性クレーム関連#k1d9c845]]署名アルゴリズム&br;([[Discovery の userinfo_signing_alg_values_supported>OpenID Connect - Discovery#w858cfce]]に対応)&br;既定値は署名なし。|
|4-2||userinfo_encrypted_response_alg|OPTIONAL|[[ユーザー属性エンドポイント>OpenID Connect - ユーザー属性クレーム関連#k1d9c845]]暗号化アルゴリズム&br;([[Discovery の userinfo_encryption_alg_values_supported>OpenID Connect - Discovery#w858cfce]]に対応)&br;既定値は暗号化なし。|
|4-3||userinfo_encrypted_response_enc|OPTIONAL|[[ユーザー属性エンドポイント>OpenID Connect - ユーザー属性クレーム関連#k1d9c845]]暗号化アルゴリズム&br;([[Discovery の userinfo_encryption_enc_values_supported>OpenID Connect - Discovery#w858cfce]]に対応)&br;既定値はA128CBC-HS256(algがあれば必要)。|
|5|>|>|>|[[Requestオブジェクト>OpenID Connect - Requestオブジェクト]]|
|5-1||request_object_signing_alg|OPTIONAL|[[Requestオブジェクト>OpenID Connect - Requestオブジェクト]]署名アルゴリズム&br;([[Discovery の request_object_signing_alg_values_supported>OpenID Connect - Discovery#w858cfce]]に対応)&br;既定値はRS256, 署名なし可。|
|5-2||request_object_encryption_alg|OPTIONAL|[[Requestオブジェクト>OpenID Connect - Requestオブジェクト]]暗号化アルゴリズム&br;([[Discovery の request_object_encryption_alg_values_supported>OpenID Connect - Discovery#w858cfce]]に対応)&br;既定値はRPの宣言なし。|
|5-3||request_object_encryption_enc|OPTIONAL|[[Requestオブジェクト>OpenID Connect - Requestオブジェクト]]暗号化アルゴリズム&br;([[Discovery の request_object_encryption_enc_values_supported>OpenID Connect - Discovery#w858cfce]]に対応)&br;既定値はA128CBC-HS256(algがあれば必要)。|
**クライアント登録エンドポイント [#n38a9d2e]
***アクセストークン [#j78fcca0]
-公開動的登録をサポートする場合、エンドポイントはアクセストークンなしで登録要求を受け入れるべき。
-(この仕様の範囲外の方法で)初期アクセストークンを要求し、許可されたクライアントだけに登録要求を制限することができる。
***登録リクエスト [#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]]