Passa al contenuto principale

4. Definizioni dei campi di intestazione

Questa sezione definisce la sintassi e la semantica dei campi di intestazione relativi al framework di autenticazione HTTP.

4.1 WWW-Authenticate​

Il campo di intestazione "WWW-Authenticate" indica gli schemi di autenticazione e i parametri applicabili alla risorsa di destinazione.

WWW-Authenticate = 1#challenge

Un server che genera una risposta 401 (Unauthorized) deve inviare un campo di intestazione WWW-Authenticate contenente almeno una challenge (MUST). Un server può generare un campo di intestazione WWW-Authenticate in altri messaggi di risposta per indicare che la fornitura di credenziali (o di credenziali diverse) potrebbe influire sulla risposta (MAY).

Un proxy che inoltra una risposta non deve modificare alcun campo WWW-Authenticate di tale risposta (MUST NOT).

Si consiglia agli user agent di prestare particolare attenzione nell'analisi del valore del campo, poiché può contenere più di una challenge e ciascuna challenge può contenere un elenco di parametri di autenticazione separati da virgole. Inoltre, il campo di intestazione stesso può comparire più volte.

Ad esempio:

WWW-Authenticate: Newauth realm="apps", type=1,
title="Login to \"apps\"", Basic realm="simple"

Questo campo di intestazione contiene due challenge: una per lo schema "Newauth" con un valore realm di "apps" e due parametri aggiuntivi "type" e "title", e un'altra per lo schema "Basic" con un valore realm di "simple".

Nota: Anche la produzione grammaticale challenge utilizza la sintassi di elenco. Pertanto, una sequenza di virgola, spazio bianco e virgola può essere considerata sia come riferita alla challenge precedente, sia come una voce vuota nell'elenco delle challenge. In pratica, questa ambiguità non influisce sulla semantica del valore del campo di intestazione ed è quindi innocua.

4.2 Authorization​

Il campo di intestazione "Authorization" consente a uno user agent di autenticarsi presso un server di origine — di norma, ma non necessariamente, dopo aver ricevuto una risposta 401 (Unauthorized). Il suo valore è costituito da credenziali contenenti le informazioni di autenticazione dello user agent per il realm della risorsa richiesta.

Authorization = credentials

Se una richiesta è autenticata e viene specificato un realm, si presume che le stesse credenziali siano valide per tutte le altre richieste all'interno di questo realm (presupponendo che lo schema di autenticazione stesso non richieda diversamente, come credenziali che variano in base al valore della challenge o all'uso di orologi sincronizzati).

Un proxy che inoltra una richiesta non deve modificare alcun campo Authorization di tale richiesta (MUST NOT). Vedere la Sezione 3.2 della [RFC7234] per i dettagli e i requisiti relativi alla gestione del campo Authorization da parte delle cache HTTP.

4.3 Proxy-Authenticate​

Il campo di intestazione "Proxy-Authenticate" è costituito da almeno una challenge che indica gli schemi di autenticazione e i parametri applicabili al proxy per questa URI effettiva della richiesta (Sezione 5.5 della [RFC7230]). Un proxy deve inviare almeno un campo di intestazione Proxy-Authenticate in ogni risposta 407 (Proxy Authentication Required) che genera (MUST).

Proxy-Authenticate = 1#challenge

A differenza di WWW-Authenticate, il campo di intestazione Proxy-Authenticate si applica soltanto al successivo client in uscita nella catena di risposta. Ciò perché è probabile che solo il client che ha scelto un dato proxy possieda le credenziali necessarie per l'autenticazione. Tuttavia, quando più proxy vengono usati all'interno dello stesso dominio amministrativo, come i proxy di cache di sede e regionali in una grande rete aziendale, è comune che le credenziali siano generate dallo user agent e passino attraverso la gerarchia fino al consumo. Pertanto, in una tale configurazione, sembrerà che Proxy-Authenticate venga inoltrato, poiché ogni proxy invierà lo stesso insieme di challenge.

Si noti che le considerazioni sull'analisi relative a WWW-Authenticate valgono anche per questo campo di intestazione; vedere la Sezione 4.1 per i dettagli.

4.4 Proxy-Authorization​

Il campo di intestazione "Proxy-Authorization" consente al client di identificarsi (o di identificare il proprio utente) presso un proxy che richiede l'autenticazione. Il suo valore è costituito da credenziali contenenti le informazioni di autenticazione del client per il proxy e/o il realm della risorsa richiesta.

Proxy-Authorization = credentials

A differenza di Authorization, il campo di intestazione Proxy-Authorization si applica soltanto al successivo proxy in ingresso che ha richiesto l'autenticazione mediante il campo Proxy-Authenticate. Quando in una catena vengono usati più proxy, il campo di intestazione Proxy-Authorization viene consumato dal primo proxy in ingresso che si aspettava di ricevere le credenziali. Un proxy può inoltrare le credenziali dalla richiesta del client al proxy successivo, se questo è il meccanismo con cui i proxy autenticano congiuntamente una data richiesta (MAY).