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

-[[戻る>JWTとOAuth2.0#bdaa0ed5]]

* 目次 [#l3592235]
#contents

*概要 [#r41f749f]
-以下の弱点のために、攻撃が可能。

--通信の送信元が認証されていない。

--TLS末端は保護されないため、パラメタ汚染、通信監視が可能。
---TLSセッションは、UserAgentで終了する。
---TLSセッションは、ロードバランサなど(ミドルボックス)で時期尚早に終了することがある。

-対策として、認可リクエストのパラメタ群を[[JWT]]で送信する~
(認証要求に署名し、オプションで暗号化できる。)~
本[[OAuth 2.0 拡張]]が[[OpenID Connect]]によって追加された。

-これにより、許可要求の機密性、完全性が達成される。

※ このページは、ドラフト 15 を参考にして作成。

*詳細 [#l71999b4]

**Requestオブジェクト [#vb813dbf]
-[[JWT]]化された認可リクエストのパラメタ群をRequestオブジェクトと呼ぶ。
-Requestオブジェクトは、[[JWS]]で署名し、[[JWE]]で暗号化する。

**Requestオブジェクトの渡し方 [#cf64a89f]
Requestオブジェクトの渡し方には以下の2つの方法がある。

***requestパラメタ [#ye252787]
Requestオブジェクトの値を直接渡す。

***request_uri パラメタ [#lcb4340f]
Requestオブジェクトの場所を伝える。

*実装 [#r8ebe8ae]
***requestパラメタ [#n1b24738]
下記手順でrequestパラメタからRequestオブジェクトを取得する。

-・・・

***request_uriパラメタ [#mae51aa7]
下記手順でrequest_uriパラメタからRequestオブジェクトを取得する。

-・・・

***Requestオブジェクトの復号 [#c69daf29]
下記手順で取得したRequestオブジェクトを複合する。

-Requestオブジェクトの署名・検証(若しくは復号)用の鍵を取得。~
・・・クライアント・メタデータが、
--登録されている場合、~
JWK Setをjwks クライアントメタデータ値から取得。
--登録されていない場合、~
jwks_uriからクライアント・メタデータ(JWK Set)を取得。

-Requestオブジェクトから認可エンドポイントへのパラメタを取り出す。

*参考 [#o4d0aa71]
-The OAuth 2.0 Authorization Framework:~
JWT Secured Authorization Request (JAR)~
https://tools.ietf.org/html/draft-ietf-oauth-jwsreq

----
Tags: [[:認証基盤]], [[:クレームベース認証]], [[:OAuth]]

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