「[[マイクロソフト系技術情報 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]]