「[[マイクロソフト系技術情報 Wiki>http://techinfoofmicrosofttech.osscons.jp/]]」は、「[[Open棟梁Project>https://github.com/OpenTouryoProject/]]」,「[[OSSコンソーシアム .NET開発基盤部会>https://www.osscons.jp/dotNetDevelopmentInfrastructure/]]」によって運営されています。

-[[戻る>OpenID Connect]]

* 目次 [#f95a23b7]
#contents

*概要 [#of0513cf]
Finalを参照して記述。

-[[OAuth]] 2.0では「クライアントは1回のリクエストにおいて二つ以上の認証方式を利用してはならない (MUST NOT).」と言われている。

-[[Registration>OpenID Connect - Dynamic Client Registration]]の際、Tokenエンドポイントにアクセスする際に追加のクライアント認証を登録可能。
-[[Registration>OpenID Connect - Dynamic Client Registration]]の際、Tokenエンドポイントにアクセスする際のクライアント認証方法を登録可能。

*詳細 [#c2ecf6f7]

**認証方法 [#b5b6ff3c]
以下の名称は、[[Discovery>OpenID Connect - Discovery]]で使用される値で、なにかのパラメタ値では無い。

***none [#a886d9f6]
以下のケースでTokenエンドポイントでの認証を行わない場合。
-Implicit Flow
-Public クライアント 
-およびその他の何らかの認証手段を用いる場合

***client_secret_basic(既定値) [#d44d4615]
-[[OAuth]] 2.0の慣例(ただし、仕様に明記はない)
-Client Credential(client_idとclient_secret)をHTTP Basic 認証スキーマで送信する。

***client_secret_post [#b718e26d]
-[[OAuth]] 2.0のオプション(ただし、仕様に明記はない)
-[[OAuth]] 2.0のオプション([[OIDC Core, 9. Client Authentication>https://openid.net/specs/openid-connect-core-1_0.html]])
-Client Credential(client_idとclient_secret)をリクエスト・ボディに含めて送信する。

***client_secret_jwt [#cee38fe3]
-[[後述>#h9b10c6c]]に従い、HS256などの([[メッセージ認証符号(MAC)>暗号化アルゴリズム#w5550a92]])アルゴリズムを使用する。
-[[HMAC は, client_secret の UTF-8 オクテットを共通鍵として利用>OpenID Connect - 暗号関連#mbbefc9e]]

***private_key_jwt [#yb874b80]
-[[後述>#h9b10c6c]]に従い、RS256などの([[デジタル署名>暗号化アルゴリズム#leddd7f0]])アルゴリズムを使用する。
-[[RSAおよびECDSAの、署名用の公開鍵を利用>OpenID Connect - 暗号関連#qfdd7483]]

**JWTの共通項 [#h9b10c6c]

***JWT Bearer Token Flow的 [#ae11f397]
[[JWT bearer token authorizationグラント種別]]の
-「Self-Issued Assertion」の
-「クライアント認証あり(サーバ信頼セキュリティ モデル)」

のユースケースに相当する。

***クレーム [#m72fd379]
こちらも、上記の「[[JWT Bearer Token Flow>#ae11f397]]」のユースケース的。

|#|要件|クレーム|値|h
|1|REQUIRED|iss|client_id|
|2|~|sub|~|
|3|~|aud|Token Endpoint URL|
|4|~|jti|[[JWTクレームセット>JWT#m5b94cda]]参照|
|5|~|exp|~|
|6|OPTIONAL|iat|~|

***送信方法 [#f441437a]
こちらも、上記の「[[JWT Bearer Token Flow>#ae11f397]]」のユースケース的。

-client_assertion パラメタ~
前述の、署名暗号化された[[JWT]]([[JWS]], [[JWE]])を使用する。

-client_assertion_type パラメタ:~
"urn:ietf:params:oauth:client-assertion-type:jwt-bearer"

**none [#a886d9f6]
以下のケースでTokenエンドポイントでの認証を行わない場合。
-Implicit Flow
-Public クライアント 
-およびその他の何らかの認証手段を用いる場合

*参考 [#g38368e9]
-Final: OpenID Connect Core 1.0 incorporating errata set 1 > 9.  Client Authentication~
https://openid-foundation-japan.github.io/openid-connect-core-1_0.ja.html#ClientAuthentication 

-OAuth 2.0 クライアント認証 - Qiita~
https://qiita.com/TakahikoKawasaki/items/63ed4a9d8d6e5109e401

----
Tags: [[:IT国際標準]], [[:認証基盤]], [[:クレームベース認証]], [[:OAuth]]


トップ   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS