- 追加された行はこの色です。
- 削除された行はこの色です。
「[[マイクロソフト系技術情報 Wiki>http://techinfoofmicrosofttech.osscons.jp/]]」は、「[[Open棟梁Project>https://github.com/OpenTouryoProject/]]」,「[[OSSコンソーシアム .NET開発基盤部会>https://www.osscons.jp/dotNetDevelopmentInfrastructure/]]」によって運営されています。
-戻る
--[[OAuth 2.0 拡張]]
--[[OpenID Connect]]
* 目次 [#hdb80567]
#contents
*概要 [#a8050399]
Redirectエンドポイントへ渡る応答パラメタ群を入れる場所を~
制御するためのパラメタとして、response_mode=form_post が追加された。~
([[OpenID Connect]] の登場により、この仕様が OAuth 2.0 に追加された)。
**response_mode [#ec44f72f]
-response_mode=query~
とするとクエリー部に応答パラメタ群が入る(code)。
-response_mode=fragment~
とするとフラグメント部に応答パラメタ群が入る(token)。
-response_mode=form_post
--とすると200 OK + HTTP POST を自動実行する HTMLに応答パラメタ群が入る。
--codeで使用すると、より安全に、codeをClientのRedirectエンドポイントに送信できる。
**補足 [#s1fa2486]
-response_mode=query, =fragmentの仕様は、~
[[OAuth 2.0 Form Post Response Mode]]ではなく、~
[[OAuth 2.0 Multiple Response Type Encoding Practices>#c535d880]]で定義されている。
-なお、セキュリティ・レベルが下がるため、デフォルトが、~
response_mode=fragment・response_mode=form_postなものを、~
response_mode=queryに変更してはいけない(逆はOK)。
*仕様 [#w120fd49]
通常は、response_type=codeで使用するが、~
以下は、response_type=id_tokenで使用したケース。
通常は、[[response_type>#c535d880]]=codeで使用するが、~
以下は、[[response_type>#c535d880]]=id_tokenで使用したケース。
-リクエスト(認可エンドポイント)
--ヘッダ
GET /authorize?
response_type=id_token
&response_mode=form_post
&client_id=some_client
&scope=openid
&redirect_uri=https%3A%2F%2Fclient.example.org%2Fcallback
&state=DcP7csa3hMlvybERqcieLHrRzKBra
&nonce=2T1AgaeRTGTMAJyeDMN9IJbgiUG HTTP/1.1
Host: server.example.com
-レスポンス(認可エンドポイント)
--ヘッダ
HTTP/1.1 200 OK
Content-Type: text/html;charset=UTF-8
Cache-Control: no-cache, no-store
Pragma: no-cache
--ボディ
<html>
<head><title>Submit This Form</title></head>
<body onload="javascript:document.forms[0].submit()">
<form method="post" action="https://client.example.org/callback">
<input type="hidden" name="state"
value="DcP7csa3hMlvybERqcieLHrRzKBra"/>
<input type="hidden" name="id_token"
value="eyJhbGciOiJSUzI1NiIsImtpZCI6IjEifQ.eyJzdWIiOiJqb2huIiw
iYXVkIjoiZmZzMiIsImp0aSI6ImhwQUI3RDBNbEo0c2YzVFR2cllxUkIiLC
Jpc3MiOiJodHRwczpcL1wvbG9jYWxob3N0OjkwMzEiLCJpYXQiOjEzNjM5M
DMxMTMsImV4cCI6MTM2MzkwMzcxMywibm9uY2UiOiIyVDFBZ2FlUlRHVE1B
SnllRE1OOUlKYmdpVUciLCJhY3IiOiJ1cm46b2FzaXM6bmFtZXM6dGM6U0F
NTDoyLjA6YWM6Y2xhc3NlczpQYXNzd29yZCIsImF1dGhfdGltZSI6MTM2Mz
kwMDg5NH0.c9emvFayy-YJnO0kxUNQqeAoYu7sjlyulRSNrru1ySZs2qwqq
wwq-Qk7LFd3iGYeUWrfjZkmyXeKKs_OtZ2tI2QQqJpcfrpAuiNuEHII-_fk
IufbGNT_rfHUcY3tGGKxcvZO9uvgKgX9Vs1v04UaCOUfxRjSVlumE6fWGcq
XVEKhtPadj1elk3r4zkoNt9vjUQt9NGdm1OvaZ2ONprCErBbXf1eJb4NW_h
nrQ5IKXuNsQ1g9ccT5DMtZSwgDFwsHMDWMPFGax5Lw6ogjwJ4AQDrhzNCFc
0uVAwBBb772-86HpAkGWAKOK-wTC6ErRTcESRdNRe0iKb47XRXaoz5acA"/>
</form>
</body>
</html>
-リクエスト(リダイレクト・エンドポイント)
--ヘッダ
POST /callback HTTP/1.1
Host: client.example.org
Content-Type: application/x-www-form-urlencoded
--ボディ
id_token=eyJhbGciOiJSUzI1NiIsImtpZCI6IjEifQ.eyJzdWIiOiJqb2huIiwiYX
VkIjoiZmZzMiIsImp0aSI6ImhwQUI3RDBNbEo0c2YzVFR2cllxUkIiLCJpc
3MiOiJodHRwczpcL1wvbG9jYWxob3N0OjkwMzEiLCJpYXQiOjEzNjM5MDMx
MTMsImV4cCI6MTM2MzkwMzcxMywibm9uY2UiOiIyVDFBZ2FlUlRHVE1BSnl
lRE1OOUlKYmdpVUciLCJhY3IiOiJ1cm46b2FzaXM6bmFtZXM6dGM6U0FNTD
oyLjA6YWM6Y2xhc3NlczpQYXNzd29yZCIsImF1dGhfdGltZSI6MTM2MzkwM
Dg5NH0.c9emvFayy-YJnO0kxUNQqeAoYu7sjlyulRSNrru1ySZs2qwqqwwq
-Qk7LFd3iGYeUWrfjZkmyXeKKs_OtZ2tI2QQqJpcfrpAuiNuEHII-_fkIuf
bGNT_rfHUcY3tGGKxcvZO9uvgKgX9Vs1v04UaCOUfxRjSVlumE6fWGcqXVE
KhtPadj1elk3r4zkoNt9vjUQt9NGdm1OvaZ2ONprCErBbXf1eJb4NW_hnrQ
5IKXuNsQ1g9ccT5DMtZSwgDFwsHMDWMPFGax5Lw6ogjwJ4AQDrhzNCFc0uV
AwBBb772-86HpAkGWAKOK-wTC6ErRTcESRdNRe0iKb47XRXaoz5acA&
state=DcP7csa3hMlvybERqcieLHrRzKBra
*参考 [#g67d5a16]
-Final: OAuth 2.0 Form Post Response Mode~
http://openid.net/specs/oauth-v2-form-post-response-mode-1_0.html
-OAuth & OpenID Connect 関連仕様まとめ - Qiita~
https://qiita.com/TakahikoKawasaki/items/185d34814eb9f7ac7ef3
**[[OAuth 2.0 Multiple Response Type Encoding Practices]] [#c535d880]
関連する仕様
----
Tags: [[:IT国際標準]], [[:認証基盤]], [[:クレームベース認証]], [[:OAuth]]