- 追加された行はこの色です。
- 削除された行はこの色です。
「[[マイクロソフト系技術情報 Wiki>http://techinfoofmicrosofttech.osscons.jp/]]」は、「[[Open棟梁Project>https://github.com/OpenTouryoProject/]]」,「[[OSSコンソーシアム .NET開発基盤部会>https://www.osscons.jp/dotNetDevelopmentInfrastructure/]]」によって運営されています。
-[[戻る>OAuth#gd28c140]]
-戻る
--[[OAuth 2.0 拡張]]
--[[OpenID Connect]]
* 目次 [#xa78ef67]
#contents
*概要 [#y68e6070]
新しいresponse_typeが追加された。
認可Request中のresponse_typeパラメタに新しいパラメタが追加された。
-「code, id_token, token の任意の組み合わせ」か、もしくは none、となった。~
([[OpenID Connect]] の登場により、この仕様が OAuth 2.0 に追加された)。
-code token(Hybrid Flow)などでは、token置換攻撃を防ぎ、安全性を高める。
-[[code token(Hybrid Flow)>OpenID Connect#l565139a]]などでは、token置換攻撃を防ぎ、安全性を高める。
*仕様 [#ne944a81]
**追加された値 [#ib867201]
***none [#ffc1317c]
ユーザーが市場からアプリケーションを購入したい場合など。
-Clientが保護リソースへのアクセス許可を登録するようにAuthorization Serverに要求する。
-その時点でClientに返されるアクセス資格情報を必要としない。
-Clientが最終的にアクセス資格情報を取得する手段は、未定義。
***id_token [#i7829fdd]
[[Multiple-Valued>#k3f4b733]]の中で使用される。
**Multiple-Valued [#k3f4b733]
-概要
--Implicitのレスポンスに追加のパラメタが付与されているイメージ。
--従って、authorization codeではなく、ImplicitとHybrid Flowの中で使用される。
-詳細
--[[response_mode>#ud5245c1]]
---既定の[[response_mode>#ud5245c1]]=fragment
---[[response_mode>#ud5245c1]]=queryは使用不可
--レスポンス・パラメタ
---token_type(response_typeにtokenが含まれる場合)
---access_token(response_typeにtokenが含まれる場合)
---id_token(response_typeにid_tokenが含まれる場合)
---code(response_typeにcodeが含まれる場合)
***id_token token [#acf7c917]
[[OpenID Connect]]の[[Implicit Flow>OpenID Connect#e7adf5c2]]を参照。
-概要~
Implicitのレスポンスにid_tokenが付いてるイメージ。
-リクエスト・レスポンスの例
--リクエスト・ヘッダ
GET /authorize?
response_type=id_token%20token
&client_id=s6BhdRkqt3
&redirect_uri=https%3A%2F%2Fclient.example.org%2Fcb
&state=af0ifjsldkj HTTP/1.1
Host: server.example.com
--レスポンス・ヘッダ
HTTP/1.1 302 Found
Location: https://client.example.org/cb#
access_token=SlAV32hkKG
&token_type=bearer
&id_token=eyJ0 ... NiJ9.eyJ1c ... I6IjIifX0.DeWt4Qu ... ZXso
&expires_in=3600
&state=af0ifjsldkj
***code token [#b2e32c62]
[[OpenID Connect]]の[[Hybrid Flow>OpenID Connect#l565139a]]を参照。
-概要~
Implicitのレスポンス・パラメタにcodeが付いてるイメージ。
-リクエスト・レスポンスの例
--リクエスト・ヘッダ
GET /authorize?
response_type=code%20token
&client_id=s6BhdRkqt3
&redirect_uri=https%3A%2F%2Fclient.example.org%2Fcb
&state=af0ifjsldkj HTTP/1.1
Host: server.example.com
--レスポンス・ヘッダ
HTTP/1.1 302 Found
Location: https://client.example.org/cb#
access_token=2YotnFZFEjr1zCsicMWpAA
&token_type=Bearer
&code=SplxlOBeZQQYbYS6WxSbIA
&state=af0ifjsldkj
&expires_in=3600
***code id_token [#j3ac4a55]
[[OpenID Connect]]の[[Hybrid Flow>OpenID Connect#l565139a]]を参照。
-[[code token>#b2e32c62]]のaccess_tokenが、id_tokenに変わったもの。
-この場合、token_typeパラメタのレスポンスは不要。
***code id_token token [#h3012e4e]
[[OpenID Connect]]の[[Hybrid Flow>OpenID Connect#l565139a]]を参照。
-[[code token>#b2e32c62]]のaccess_tokenに加え、id_tokenが追加される。
*セキュリティ考慮事項 [#y3124949]
**Query Stringにエンコード [#fb291c98]
Query StringはHTTP Refererヘッダから第三者に漏洩する。
-codeをQuery Stringにエンコードすることは安全
-その他のトークンはQuery Stringにエンコードしてはならない。
-デフォルトの応答モードがフラグメントエンコーディングであるレスポンスは、~
Query Stringにエンコードされるべきではない([[response_mode>#ud5245c1]]=query)。
*参考 [#mfbbf39a]
-Final: OAuth 2.0 Multiple Response Type Encoding Practices~
http://openid.net/specs/oauth-v2-multiple-response-types-1_0.html
-OpenID Connect 全フロー解説 - Qiita~
https://qiita.com/TakahikoKawasaki/items/4ee9b55db9f7ef352b47
-OAuth 2.0 の Response Type 全パターン - OAuth.jp~
http://oauth.jp/blog/2015/01/06/oauth2-multiple-response-type/
**関連仕様 [#b31d91f0]
-OAuth & OpenID Connect 関連仕様まとめ - Qiita~
https://qiita.com/TakahikoKawasaki/items/185d34814eb9f7ac7ef3
***[[OAuth 2.0 Form Post Response Mode]] [#ud5245c1]
***[[JWT Secured Authorization Response Mode for OAuth 2.0 (JARM)]] [#zaf2ec74]
----
Tags: [[:認証基盤]], [[:クレームベース認証]], [[:OAuth]]
Tags: [[:IT国際標準]], [[:認証基盤]], [[:クレームベース認証]], [[:OAuth]]