「マイクロソフト系技術情報 Wiki」は、「Open棟梁Project」,「OSSコンソーシアム .NET開発基盤部会」によって運営されています。
目次 †
概要 †
Bearer TokenにJWTアサーションを使用 †
- OAuth 2.0ではAccess Tokenまで仕様化されていないのでJWTアサーションを利用可能。
- Access Tokenとして、JWTアサーションを使用すれば、
改竄、置換、CSRF(XSRF)などを検出できるようになるため、
Implicitグラント種別でもより安全に利用できるようになる。
- ClientやResource Serverでtokenの署名検証が可能になる。
- また、発行者のAuthZ Server(iss:issuer)と
発行対象のClient(aud:audience=クライアント識別子)を特定できる。
- これにより、トークン置き換え攻撃も防ぐことができる。
- ポイントは、このAccess Tokenは、ASP.NET Identityなどの
特定テクノロジに準拠したのResource Serverでなくても利用可能であるという点。
- Access Tokenのカスタマイズが可能。
- ただし、(基本的には)Access Tokenのみがカスタマイズの対象なので、
OpenID Connectに対応させることはできない(IDトークンの追加はできない)。
この方式は、AzureADのOAuthでも利用されている模様。
参考 †
JWT Bearer Token Flow †
概要 †
- 事前に信頼関係を構築できるシステムからAPI接続する場合に有効な方法らしい。
具体的なフロー †
- JWT作成のための証明書を生成 or 取得する。
- 証明書をClient側(秘密鍵)とResource Server側(公開鍵)に登録する。
- ClientでJWTを署名作成し、Resource Serverに送信して、
- Resource ServerでJWTを検証し、Access Token(Bearer Token)を取得する。
- Clientから、Access Token(Bearer Token)を使用してResource Serverにアクセスする。
参考 †
OAuth2.0 Proof of Possession †
概要 †
- Access TokenをJWTアサーションで発行する系のドラフト。
- 誰が(どの認可サーバが)誰に(どのクライアントに対して)発行した Access Token なのかを確認する。
- これにより、意図しないクライアントからのリソースに対するリクエストを拒否するするこができる。
参考 †
その他 †
概要 †
OpenID Connectでは、Access TokenではなくID TokenにJWTを使用している。
参考 †
Tags: :認証基盤, :ASP.NET Identity, :OAuth