1.1. Introductory Example (Einführendes Beispiel)
1.1. Introductory Example (Einführendes Beispiel)
In klassischem OAuth 2.0 startet der Client eine Autorisierungsanfrage typischerweise, indem der User-Agent eine HTTP-Anfrage wie die folgende an den Autorisierungsendpunkt des Servers sendet (Zeilenumbrüche nur zur Darstellung):
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
Dieselbe Anfrage kann der Client stattdessen mit POST an den PAR-Endpunkt direkt an den Autorisierungsserver senden (Darstellung mit Zeilenumbrüchen und Leerzeichen). Der Client kann sich authentisieren (z. B. mit JWT-Client-Assertion wie gezeigt), weil die Anfrage direkt an den Server geht.
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
Der Autorisierungsserver antwortet mit einem 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
}
Der Client nutzt den Request-URI, um die folgende Autorisierungsanfrage zu bauen, indem der User-Agent eine HTTP-Anfrage an den Autorisierungsendpunkt sendet (Darstellung):
GET /authorize?client_id=CLIENT1234
&request_uri=urn%3Aexample%3Abwc4JK-ESC0w8acc191e-Y1LTC2 HTTP/1.1
Host: as.example.com