Passa al contenuto principale

2. Response Parameter iss

In authorization responses to the client, including error responses, an authorization server supporting this specification MUST indicate its identity by including the iss parameter in the response.

Nelle risposte di autorizzazione al client, comprese le risposte di errore, un server di autorizzazione che supporta questa specifica DEVE indicare la propria identità includendo il parametro iss nella risposta.

The iss parameter value is the issuer identifier of the authorization server that created the authorization response, as defined in [RFC8414]. Its value MUST be a URL that uses the "https" scheme without any query or fragment components.

Il valore del parametro iss è l'identificatore dell'emittente del server di autorizzazione che ha creato la risposta di autorizzazione, come definito in [RFC8414]. Il suo valore DEVE essere un URL che utilizza lo schema "https" senza componenti di query o frammento.

2.1. Example Authorization Response

The following example shows an authorization response from the authorization server whose issuer identifier is https://honest.as.example (extra line breaks and indentation are for display purposes only):

Il seguente esempio mostra una risposta di autorizzazione dal server di autorizzazione il cui identificatore dell'emittente è https://honest.as.example (interruzioni di riga e rientri extra sono solo a scopo di visualizzazione):

HTTP/1.1 302 Found
Location: https://client.example/cb?
code=x1848ZT64p4IirMPT0R-X3141MFPTuBX-VFL_cvaplMH58
&state=ZWVlNDBlYzA1NjdkMDNhYjg3ZjUxZjAyNGQzMTM2NzI
&iss=https%3A%2F%2Fhonest.as.example

2.2. Example Error Response

The following example shows an error response from the same authorization server (extra line breaks and indentation are for display purposes only):

Il seguente esempio mostra una risposta di errore dallo stesso server di autorizzazione (interruzioni di riga e rientri extra sono solo a scopo di visualizzazione):

HTTP/1.1 302 Found
Location: https://client.example/cb?
error=access_denied
&state=N2JjNGJhY2JiZjRhYzA3MGJkMzNmMDE5OWJhZmJhZjA
&iss=https%3A%2F%2Fhonest.as.example

2.3. Providing the Issuer Identifier

Authorization servers supporting this specification MUST provide their issuer identifier to enable clients to validate the iss parameter effectively.

I server di autorizzazione che supportano questa specifica DEVONO fornire il loro identificatore dell'emittente per consentire ai client di convalidare efficacemente il parametro iss.

For authorization servers publishing metadata according to [RFC8414], the following rules apply:

Per i server di autorizzazione che pubblicano metadati secondo [RFC8414], si applicano le seguenti regole:

  • The issuer identifier included in the server's metadata value issuer MUST be identical to the iss parameter's value.

  • L'identificatore dell'emittente incluso nel valore dei metadati del server issuer DEVE essere identico al valore del parametro iss.

  • The server MUST indicate its support for the iss parameter by setting the metadata parameter authorization_response_iss_parameter_supported, defined in Section 3, to true.

  • Il server DEVE indicare il suo supporto per il parametro iss impostando il parametro dei metadati authorization_response_iss_parameter_supported, definito nella Sezione 3, su true.

Authorization servers MAY additionally provide the issuer identifier to clients by any other mechanism, which is outside of the scope of this specification.

I server di autorizzazione POSSONO fornire inoltre l'identificatore dell'emittente ai client tramite qualsiasi altro meccanismo, che esula dallo scopo di questa specifica.

2.4. Validating the Issuer Identifier

Clients that support this specification MUST extract the value of the iss parameter from authorization responses they receive if the parameter is present. Clients MUST then decode the value from its "application/x-www-form-urlencoded" form according to Appendix B of [RFC6749] and compare the result to the issuer identifier of the authorization server where the authorization request was sent to. This comparison MUST use simple string comparison as defined in Section 6.2.1 of [RFC3986]. If the value does not match the expected issuer identifier, clients MUST reject the authorization response and MUST NOT proceed with the authorization grant. For error responses, clients MUST NOT assume that the error originates from the intended authorization server.

I client che supportano questa specifica DEVONO estrarre il valore del parametro iss dalle risposte di autorizzazione che ricevono se il parametro è presente. I client DEVONO quindi decodificare il valore dalla sua forma "application/x-www-form-urlencoded" secondo l'Appendice B di [RFC6749] e confrontare il risultato con l'identificatore dell'emittente del server di autorizzazione a cui è stata inviata la richiesta di autorizzazione. Questo confronto DEVE utilizzare un semplice confronto di stringhe come definito nella Sezione 6.2.1 di [RFC3986]. Se il valore non corrisponde all'identificatore dell'emittente previsto, i client DEVONO rifiutare la risposta di autorizzazione e NON DEVONO procedere con la concessione dell'autorizzazione. Per le risposte di errore, i client NON DEVONO presumere che l'errore provenga dal server di autorizzazione previsto.

More precisely, clients that interact with authorization servers supporting OAuth metadata [RFC8414] MUST compare the iss parameter value to the issuer value in the server's metadata document. If OAuth metadata is not used, clients MUST use deployment-specific ways (for example, a static configuration) to decide if the returned iss value is the expected value in the current flow (see also Section 4).

Più precisamente, i client che interagiscono con server di autorizzazione che supportano i metadati OAuth [RFC8414] DEVONO confrontare il valore del parametro iss con il valore issuer nel documento dei metadati del server. Se i metadati OAuth non vengono utilizzati, i client DEVONO utilizzare metodi specifici della distribuzione (ad esempio, una configurazione statica) per decidere se il valore iss restituito è il valore atteso nel flusso corrente (vedere anche Sezione 4).

If clients interact with both authorization servers supporting this specification and authorization servers not supporting this specification, clients MUST retain state about whether each authorization server supports the iss parameter. Clients MUST reject authorization responses without the iss parameter from authorization servers that do support the parameter according to the client's configuration. Clients SHOULD discard authorization responses with the iss parameter from authorization servers that do not indicate their support for the parameter. However, there might be legitimate authorization servers that provide the iss parameter without indicating their support in their metadata. Local policy or configuration can determine whether to accept such responses, and specific guidance is out of scope for this specification.

Se i client interagiscono sia con server di autorizzazione che supportano questa specifica sia con server di autorizzazione che non supportano questa specifica, i client DEVONO conservare lo stato relativo al supporto del parametro iss da parte di ciascun server di autorizzazione. I client DEVONO rifiutare le risposte di autorizzazione senza il parametro iss da server di autorizzazione che supportano il parametro secondo la configurazione del client. I client DOVREBBERO scartare le risposte di autorizzazione con il parametro iss da server di autorizzazione che non indicano il loro supporto per il parametro. Tuttavia, potrebbero esserci server di autorizzazione legittimi che forniscono il parametro iss senza indicare il loro supporto nei metadati. Le politiche locali o la configurazione possono determinare se accettare tali risposte e le linee guida specifiche esulano dallo scopo di questa specifica.

In general, clients that support this specification MAY accept authorization responses that do not contain the iss parameter or reject them and exclusively support authorization servers that provide the iss parameter in the authorization response. Local policy or configuration can determine when to accept such responses, and specific guidance is out of scope for this specification.

In generale, i client che supportano questa specifica POSSONO accettare risposte di autorizzazione che non contengono il parametro iss o rifiutarle e supportare esclusivamente server di autorizzazione che forniscono il parametro iss nella risposta di autorizzazione. Le politiche locali o la configurazione possono determinare quando accettare tali risposte e le linee guida specifiche esulano dallo scopo di questa specifica.

In OpenID Connect [OIDC.Core] flows where an ID Token is returned from the authorization endpoint, the value in the iss parameter MUST always be identical to the iss claim in the ID Token.

Nei flussi OpenID Connect [OIDC.Core] in cui un token ID viene restituito dall'endpoint di autorizzazione, il valore nel parametro iss DEVE essere sempre identico al claim iss nel token ID.

Section 4.1.2 of [RFC6749] already mandates that clients that do not support this specification MUST ignore the unrecognized iss parameter.

La Sezione 4.1.2 della [RFC6749] impone già che i client che non supportano questa specifica DEVONO ignorare il parametro iss non riconosciuto.

Note: The "JWT Secured Authorization Response Mode for OAuth 2.0 (JARM)" [JARM] defines a mechanism that conveys all authorization response parameters in a JSON Web Token (JWT). This JWT contains an iss claim that provides the same protection if it is validated as described in Section 2.4. Therefore, an additional iss parameter outside the JWT is not necessary when JARM is used.

Nota: Il "JWT Secured Authorization Response Mode for OAuth 2.0 (JARM)" [JARM] definisce un meccanismo che trasmette tutti i parametri della risposta di autorizzazione in un JSON Web Token (JWT). Questo JWT contiene un claim iss che fornisce la stessa protezione se viene convalidato come descritto nella Sezione 2.4. Pertanto, un parametro iss aggiuntivo al di fuori del JWT non è necessario quando viene utilizzato JARM.