1.1. Introductory Example (Esempio introduttivo)
1.1. Introductory Example (Esempio introduttivo)
In OAuth 2.0 classico il client avvia in genere una richiesta di autorizzazione facendo inviare all’user agent una richiesta HTTP come la seguente all’endpoint di autorizzazione del server (interruzioni di riga solo per la visualizzazione):
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
La stessa richiesta può essere inviata dal client con POST all’endpoint PAR, direttamente al server di autorizzazione (presentazione con interruzioni di riga e spazi). Il client può autenticarsi (ad esempio con JWT client assertion come mostrato) perché la richiesta va direttamente al server.
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
Il server di autorizzazione risponde con un URI di richiesta:
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
}
Il client usa il valore dell’URI di richiesta per costruire la seguente richiesta di autorizzazione, chiedendo all’user agent di effettuare una richiesta HTTP come segue verso l’endpoint di autorizzazione (solo per la visualizzazione):
GET /authorize?client_id=CLIENT1234
&request_uri=urn%3Aexample%3Abwc4JK-ESC0w8acc191e-Y1LTC2 HTTP/1.1
Host: as.example.com