1.1. Introductory Example (導入例)
1.1. Introductory Example (導入例)
従来の OAuth 2.0 では, クライアントは通常, ユーザエージェントに認可サーバの認可エンドポイントへ次のような HTTP リクエストを送らせることで認可リクエストを開始する (表示のための改行とインデントのみ).
GET /authorize?response_type=code
&client_id=CLIENT1234&state=duk681S8n00GsJpe7n9boxdzen
&redirect_uri=https%3A%2F%2Fclient.example.org%2Fcb HTTP/1.1
Host: as.example.com
このリクエストは, 次の例のとおりクライアントが PAR エンドポイントへ POST することで認可サーバへ直接プッシュすることもできる (表示のための改行とスペースのみ). リクエストが認可サーバへ直接送られるため, 例に示す JWT クライアントアサーションに基づく認証のように, クライアントは認証できる.
POST /as/par HTTP/1.1
Host: as.example.com
Content-Type: application/x-www-form-urlencoded
&response_type=code
&client_id=CLIENT1234&state=duk681S8n00GsJpe7n9boxdzen
&redirect_uri=https%3A%2F%2Fclient.example.org%2Fcb
&client_assertion_type=
urn%3Aietf%3Aparams%3Aoauth%3Aclient-assertion-type%3Ajwt-bearer
&client_assertion=eyJraWQiOiI0MiIsImFsZyI6IkVTMjU2In0.eyJpc3MiOiJDTE
lFTlQxMjM0Iiwic3ViIjoiQ0xJRU5UMTIzNCIsImF1ZCI6Imh0dHBzOi8vc2VydmVyL
mV4YW1wbGUuY29tIiwiZXhwIjoxNjI1ODY4ODc4fQ.Igw8QrpAWRNPDGoWGRmJumLBM
wbLjeIYwqWUu-ywgvvufl_0sQJftNs3bzjIrP0BV9rRG-3eI1Ksh0kQ1CwvzA
認可サーバは request URI で応答する.
HTTP/1.1 201 Created
Cache-Control: no-cache, no-store
Content-Type: application/json
{
"request_uri": "urn:example:bwc4JK-ESC0w8acc191e-Y1LTC2",
"expires_in": 90
}
クライアントは request URI 値を用いて, ユーザエージェントに認可サーバの認可エンドポイントへ次のような HTTP リクエストを送らせ, 後続の認可リクエストを作成する (表示のための改行とインデントのみ).
GET /authorize?client_id=CLIENT1234
&request_uri=urn%3Aexample%3Abwc4JK-ESC0w8acc191e-Y1LTC2 HTTP/1.1
Host: as.example.com