「マイクロソフト系技術情報 Wiki」は、「Open棟梁Project」,「OSSコンソーシアム .NET開発基盤部会」によって運営されています。
Finalを参照して記述。
Client(RP)が、(Discoveryで発見した)Idp(OP)に、動的な登録を行う、
「クライアント登録エンドポイント」の仕様について記載してある。
TLSサポートと、TLS証明書のチェックが必要。
クライアント・メタデータの値は、次の2つの方法で使用される。
| # | パラメタ | 要件 | 説明 |
| 1 | redirect_uris | REQUIRED | 登録したクライアントのredirect_uriのJSON配列 |
| 2 | response_types | OPTIONAL | response_type値のJSON配列。既定値は「code」。 |
| 3 | grant_types | OPTIONAL | grant_type値の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) |
| 14 | sector_identifier_uri | OPTIONAL | pairwise値の計算に利用する(pairwiseをサポートする場合は必須)。 |
| # | パラメタ | 要件 | 説明 |
| 1 | jwks | OPTIONAL | JWK Set |
| 2 | jwks_uri | OPTIONAL | jwks_uri |
| 3 | id_token_signed_response_alg | OPTIONAL | IDトークン署名アルゴリズム (Discoveryのid_token_signing_alg_values_supportedに対応) 既定値はRS256。 |
| 3 | id_token_encrypted_response_alg | OPTIONAL | IDトークン暗号化アルゴリズム (Discoveryのid_token_encryption_alg_values_supportedに対応) |
| 4 | id_token_encrypted_response_enc | OPTIONAL | IDトークン暗号化アルゴリズム (Discoveryのid_token_encryption_enc_values_supportedに対応) |
| 5 | userinfo_signed_response_alg | OPTIONAL | ユーザー属性エンドポイント署名アルゴリズム (Discoveryのuserinfo_signing_alg_values_supportedに対応) |
| 6 | userinfo_encrypted_response_alg | OPTIONAL | ユーザー属性エンドポイント暗号化アルゴリズム (Discoveryのuserinfo_encryption_alg_values_supportedに対応) |
| 7 | userinfo_encrypted_response_enc | OPTIONAL | ユーザー属性エンドポイント暗号化アルゴリズム (Discoveryのuserinfo_encryption_enc_values_supportedに対応) |
| 8 | |||
| 9 | |||
| 10 | |||
| 11 | |||
| 12 | |||
| 13 | |||
| 14 |
登録メタデータとともに、プロビジョニングされたフィールドを含めて返す。
| # | パラメタ | 要件 | 説明 |
| 1 | client_id | REQUIRED | 登録したクライアントのclient_id |
| 2 | client_id_issued_at | OPTIONAL | client_idが発行された時刻。 |
| 3 | client_secret | OPTIONAL | 登録したクライアントのclient_secret (PKCEやprivate_key_jwtなどのケースがあるので) |
| 4 | client_secret_expires_at | REQUIRED | client_secretが期限切れになる時刻。 (client_secretが発行された場合は必須) |
| 5 | registration_access_token | OPTIONAL | 後続のクライアント登録操作を実行するためのアクセストークン。 |
| 6 | registration_client_uri | OPTIONAL | 前述のregistration_access_tokenを使用して、 後続のクライアント登録操作を実行するための構成エンドポイントの場所。 |
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"
}Tags: :IT国際標準, :認証基盤, :クレームベース認証, :OAuth