Passa al contenuto principale

2.1. Authorization Request (Richiesta di autorizzazione)

2.1. Authorization Request (Richiesta di autorizzazione)

Quando il parametro resource è usato in una richiesta di autorizzazione all'authorization endpoint, indica l'identità della o delle risorse protette a cui si sta richiedendo l'accesso. Quando un access token sarà restituito direttamente dall'authorization endpoint tramite il flusso implicito (sezione 4.2 di OAuth 2.0 [RFC6749]), la risorsa richiesta si applica a quell'access token. Nel flusso con codice (sezione 4.1 di OAuth 2.0 [RFC6749]) in cui viene restituita dall'authorization endpoint una rappresentazione intermedia della concessione di autorizzazione (il codice di autorizzazione), la risorsa richiesta si applica all'intera concessione di autorizzazione.

Per una richiesta di autorizzazione inviata come JSON Web Token (JWT), ad esempio quando si usa il JWT Secured Authorization Request [JWT-SAR], un singolo valore del parametro resource è rappresentato come stringa JSON mentre più valori sono rappresentati come array di stringhe.

Se il client omette il parametro resource quando richiede l'autorizzazione, il server di autorizzazione PUÒ elaborare la richiesta senza una risorsa specifica o usando un valore di risorsa predefinito. In alternativa, il server di autorizzazione PUÒ richiedere che i client specifichino la o le risorse a cui intendono accedere e PUÒ fallire le richieste che omettono il parametro con un errore invalid_target. Il server di autorizzazione potrebbe usare questi dati per informare l'utente sulle risorse a cui il client accederà per suo conto, per applicare policy (ad esempio rifiutare la richiesta per risorse sconosciute) e per determinare l'insieme di risorse utilizzabili in successive richieste di access token.

Se il server di autorizzazione non riesce ad analizzare il o i valori forniti o non considera accettabile la o le risorse, dovrebbe rifiutare la richiesta con una risposta di errore usando il codice di errore invalid_target come valore del parametro error e può fornire informazioni aggiuntive sui motivi dell'errore usando error_description.

Un esempio di richiesta di autorizzazione in cui il client comunica al server di autorizzazione che desidera un access token per l'uso presso https://api.example.com/app/ è mostrato nella Figura 1 sotto (interruzioni di riga e indentazione extra solo a scopo di visualizzazione).

GET /as/authorization.oauth2?response_type=token
&client_id=example-client
&state=XzZaJlcwYew1u0QBrRv_Gw
&redirect_uri=https%3A%2F%2Fclient.example.org%2Fcb
&resource=https%3A%2F%2Fapi.example.com%2Fapp%2F HTTP/1.1
Host: authorization-server.example.com

Figura 1: Richiesta di autorizzazione flusso implicito

Sotto, nella Figura 2, c'è un esempio di richiesta di autorizzazione usando il tipo di risposta code in cui il client richiede l'accesso ai contatti e ai dati del calendario del resource owner presso https://cal.example.com/ e https://contacts.example.com/ (interruzioni di riga e indentazione extra solo a scopo di visualizzazione).

GET /as/authorization.oauth2?response_type=code
&client_id=s6BhdRkqt3
&state=tNwzQ87pC6llebpmac_IDeeq-mCR2wLDYljHUZUAWuI
&redirect_uri=https%3A%2F%2Fclient.example.org%2Fcb
&scope=calendar%20contacts
&resource=https%3A%2F%2Fcal.example.com%2F
&resource=https%3A%2F%2Fcontacts.example.com%2F HTTP/1.1
Host: authorization-server.example.com

Figura 2: Richiesta di autorizzazione flusso con codice