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

-[[戻る>OAuth]]

* 目次 [#n69bb58b]
#contents

*概要 [#fe00a351]
-[[JWT]]を使う[[OAuth]] 2.0についての纏め。
-[[OAuth]] 2.0のセキュリティ上の解題を解決し認証での利用を可能にする。

*Bearer Tokenに[[JWT]]アサーションを使用 [#y9c24d21]
-[[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

*[[OpenID Connect]] [#cd3ff39c]

*OAuth2.0拡張 [#d8b84e21]
**[[JWT bearer token authorizationグラント種別]] [#f5007063]

**OAuth2.0 Proof of Possession [#u8ebfddc]
***概要 [#u06d5989]
-Access Tokenを[[JWT]]アサーションで発行する系のドラフト。

-誰が(どの認可サーバが)誰に(どのクライアントに対して)発行した Access Token なのかを確認できる。~
(これは、前述の「[[Bearer TokenにJWTアサーションを使用>#y9c24d21]]で、[[IDトークン>OpenID Connect#ofb73c59]]」を使用しても可能。)

-これにより、意図しないクライアントからのリソースに対するリクエストを拒否するするこができる。

-基本的にはJWTの検証という話であるが、[[OAuth]] 2.0に近い、~
[[OpenID Connect]]の[[IDトークン>OpenID Connect#ofb73c59]]の検証と比べると、いくぶんか複雑らしい。~
(前述の「[[Bearer TokenにJWTアサーションを使用>#y9c24d21]]」と比較して優れている点を調査。)

***参考 [#u43bc76c]
-draft-ietf-oauth-pop-architecture-08~
OAuth 2.0 Proof-of-Possession (PoP) Security Architecture~
https://tools.ietf.org/html/draft-ietf-oauth-pop-architecture-08

-その他
--OAuth2.0  Proof of Possession についてまとめてみた - hiyosi's blog~
https://hiyosi.tumblr.com/post/121441878998/oauth20-proof-of-possession-%E3%81%AB%E3%81%A4%E3%81%84%E3%81%A6%E3%81%BE%E3%81%A8%E3%82%81%E3%81%A6%E3%81%BF%E3%81%9F

----
Tags: [[:認証基盤]], [[:ASP.NET Identity]], [[:OAuth]]

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