2. Resource Parameter (Parametro resource)
2. Resource Parameter (Parametro resource)
Nelle richieste al server di autorizzazione, un client PUÒ indicare la risorsa protetta (nota anche come resource server, applicazione, API, ecc.) a cui sta richiedendo l'accesso includendo il seguente parametro nella richiesta.
resource
: Indica il servizio o la risorsa di destinazione a cui si sta richiedendo l'accesso. Il suo valore DEVE essere un URI assoluto, come specificato dalla sezione 4.3 di [RFC3986]. L'URI NON DEVE includere un componente fragment. NON DOVREBBE includere un componente query, ma si riconoscono casi che rendono un componente query una parte utile e necessaria del parametro resource, ad esempio quando uno o più parametri di query sono usati per limitare le richieste a un'applicazione. Il valore URI del parametro resource è un identificatore che rappresenta l'identità della risorsa e PUÒ essere un locator che corrisponde a una posizione raggiungibile sulla rete dove è ospitata la risorsa di destinazione. Possono essere usati più parametri resource per indicare che il token richiesto è destinato all'uso su più risorse.
Il valore del parametro identifica una risorsa a cui il client sta richiedendo l'accesso. Il parametro può portare la posizione di una risorsa protetta, tipicamente come URL https o un identificatore più astratto. Ciò consente al server di autorizzazione di applicare policy appropriate per la risorsa, come determinare il tipo e il contenuto dei token da emettere, se e come i token sono cifrati, e applicare restrizioni di audience appropriate.
Il client DOVREBBE fornire l'URI più specifico possibile per l'API completa o l'insieme di risorse a cui intende accedere. In pratica, un client conoscerà un URI base per l'applicazione o la risorsa con cui interagisce, appropriato come valore del parametro resource. Il client DOVREBBE usare l'URI base dell'API come valore del parametro resource salvo che conoscenze specifiche della risorsa indichino diversamente. Ad esempio, il valore https://api.example.com/ sarebbe usato per una risorsa che è l'applicazione esclusiva su quell'host; tuttavia, se la risorsa è una di molte applicazioni su quell'host, si userebbe qualcosa come https://api.example.com/app/ come valore più specifico. Un altro esempio è quando un'API ha più endpoint, ad esempio quando System for Cross-domain Identity Management (SCIM) [RFC7644] ha endpoint come https://apps.example.com/scim/Users, https://apps.example.com/scim/Groups e https://apps.example.com/scim/Schemas. Il client userebbe https://apps.example.com/scim/ come risorsa in modo che l'access token emesso sia valido per tutti gli endpoint dell'API SCIM.
Il seguente codice di errore è fornito affinché un server di autorizzazione indichi problemi con la o le risorse richieste in risposta a una richiesta di autorizzazione o a una richiesta di access token. Può anche essere usato per informare il client che ha richiesto una combinazione non valida di risorsa e scope.
invalid_target
: La risorsa richiesta non è valida, mancante, sconosciuta o malformata.
Il server di autorizzazione DOVREBBE limitare per audience gli access token emessi alla o alle risorse indicate dal parametro resource. Le restrizioni di audience possono essere comunicate in JSON Web Token [RFC7519] con il claim aud e il membro di livello superiore con lo stesso nome fornisce le informazioni di restrizione di audience in una risposta Token Introspection [RFC7662]. Il server di autorizzazione può usare il valore esatto di resource come audience oppure può mappare da quel valore a un URI più generale o un identificatore astratto per la data risorsa.