「[[マイクロソフト系技術情報 Wiki>http://techinfoofmicrosofttech.osscons.jp/]]」は、「[[Open棟梁Project>https://github.com/OpenTouryoProject/]]」,「[[OSSコンソーシアム .NET開発基盤部会>https://www.osscons.jp/dotNetDevelopmentInfrastructure/]]」によって運営されています。 -[[戻る>OAuth 2.0 拡張]] * 目次 [#n69bb58b] #contents *概要 [#fe00a351] -[[JWT]]を使う[[OAuth]] 2.0についての纏め。 -[[OAuth]] 2.0のセキュリティ上の解題を解決し認証での利用を可能にする。 *詳細 [#n5b682c9] **Bearer Tokenの[[JWT]]化 [#y9c24d21] ***概要 [#h509f0e1] -[[OAuth]] 2.0ではAccess Tokenまで仕様化されていないので[[JWT]]アサーションを利用可能。 -Access Tokenとして、[[JWT]]アサーションを使用すれば、~ 改竄、置換、CSRF(XSRF)などを検出できるようになるため、~ Implicitグラント種別でもより安全に利用できるようになる。 -[[OpenID Connect]] の [[IDトークンに同梱されるクレーム>OpenID Connect#ofb73c59]]を~ 同梱させれば、ほぼ安全になり、認証用途にも利用できるようになる。 --ClientやResource Serverでtokenの署名検証が可能になる。 --また、発行者のAuthZ Server(iss:issuer)と~ 発行対象のClient(aud:audience=[[クライアント識別子>#i7b73962]])を特定できる。 --これにより、トークン置き換え攻撃も防ぐことができる。 -ポイントは、このAccess Tokenは、[[ASP.NET Identity]]などの~ 特定テクノロジを使用したResource Serverでなくても利用可能であるという点。 ***[[ASP.NET Identity]] [#k0b22c52] -Access Tokenのカスタマイズが可能。 -ただし、(基本的には)Access Tokenのみがカスタマイズの対象なので、~ [[OpenID Connect]]に対応させることはできない([[IDトークン>OpenID Connect#ofb73c59]]の追加はできない)。 -参考 --JSON Web Token in ASP.NET Web API 2 using Owin - Bit of Technology~ http://bitoftech.net/2014/10/27/json-web-token-asp-net-web-api-2-jwt-owin-authorization-server/ ***[[Azure Active Directory>Microsoft Azure Active Directory]] [#de766162] [[この方式は、AzureADのOAuthでも利用されている模様。>Microsoft Azure Active Directory#a58c67e4]] ***参考 [#ie28f470] -OAuth 2.0のAccess TokenへのJSON Web Token(JSON Web Signature)の適用 - r-weblife~ http://d.hatena.ne.jp/ritou/20140927/1411811648 -モバイルアプリのユーザ認証方法についてまとめてみた - Qiita~ http://qiita.com/ledmonster/items/0ee1e757af231aa927b1 --10 Things You Should Know about Tokens~ 9. JSON Web Tokens can be used in OAuth: Bearer Token~ https://auth0.com/blog/ten-things-you-should-know-about-tokens-and-cookies/#token-oauth **クライアント認証 [#pebd83d3] ***[[JWT bearer token authorizationグラント種別]] [#f5007063] -Client Credentialsグラント種別の代替フロー -強化されたクライアント認証を使用してaccess_tokenを取得する。 **認可リクエスト・レスポンス署名 [#c028ff7f] ***[[JWT Secured Authorization Request (JAR)]] [#bdaa0ed5] -認可リクエストのパラメタを[[JWT]]で送信する機能。 -これにより、許可要求の機密性、完全性が達成される。 ***[[JWT Secured Authorization Response Mode for OAuth 2.0 (JARM)]] [#y2f2d599] -認可レスポンスを[[JWT]]で送信する機能。 -これにより、許可応答の機密性、完全性が達成される。 **認可リクエストの高度化 [#o9b238a2] ***[[JWT Secured Authorization Request (JAR)>#bdaa0ed5]] [#g1d51259] [[前述のJAR>#bdaa0ed5]] ***[[OAuth 2.0 Pushed Authorization Requests (PAR)>FAPI Part 2 (Read and Write API Security Profile)#dfcede35]] [#m63e1f26] -ファジーな[[JAR>#g1d51259]]の、一、ユースケース。 -[[FAPI Part 2>FAPI Part 2 (Read and Write API Security Profile)]]で、実質的にPARが使用されている。 ***OAuth 2.0 Rich Authorization Requests (RAR) [#k6886e2a] 複雑な JSON 構造を持つ authorization_details リクエストパラメタを追加。 ***[[OpenID Connect for Identity Assurance]] [#k2204d7a] claims リクエストパラメタ値に、複雑な JSON 構造を持つ verified_claims を挿入。 **[[OpenID Connect]] [#cd3ff39c] ---- Tags: [[:IT国際標準]], [[:認証基盤]], [[:ASP.NET Identity]], [[:OAuth]]