「マイクロソフト系技術情報 Wiki」は、「Open棟梁Project」,「OSSコンソーシアム .NET開発基盤部会」によって運営されています。
目次 †
概要 †
- 以下の弱点のために、攻撃が可能。
- 通信の送信元が認証されていない。
- TLS末端のUserAgent?上は保護されないため、
パラメタが汚染されている可能がある。
- 対策として、認可リクエストのパラメタ群をJWTで送信する。
(認証要求に署名し、オプションで暗号化できる。)
- これにより、許可要求の機密性、完全性が達成される。
※ このページは、ドラフト 15 を参考にして作成。
詳細 †
Requestオブジェクト †
- JWT化された認可リクエストのパラメタ群をRequestオブジェクトと呼ぶ。
- Requestオブジェクトは、JWSで署名し、JWEで暗号化する。
Requestオブジェクトの渡し方 †
Requestオブジェクトの渡し方には以下の2つの方法がある。
requestパラメタ †
Requestオブジェクトの値を直接渡す。
request_uri パラメタ †
Requestオブジェクトの場所を伝える。
実装 †
requestパラメタ †
下記手順でrequestパラメタからRequestオブジェクトを取得する。
request_uriパラメタ †
下記手順でrequest_uriパラメタからRequestオブジェクトを取得する。
Requestオブジェクトの復号 †
下記手順で取得したRequestオブジェクトを複合する。
- Requestオブジェクトの署名・検証(若しくは復号)用の鍵を取得。
・・・クライアント・メタデータが、
- 登録されている場合、
JWK Setをjwks クライアントメタデータ値から取得。
- 登録されていない場合、
jwks_uriからクライアント・メタデータ(JWK Set)を取得。
- Requestオブジェクトから認可エンドポイントへのパラメタを取り出す。
参考 †
Tags: :認証基盤, :クレームベース認証, :OAuth