Qual è il "regno" nell'autenticazione di base


307

Sto configurando l'autenticazione di base su un sito php e ho trovato questa pagina nel manuale php che mostra la configurazione. Che cosa significa "regno" qui nell'intestazione?

header('WWW-Authenticate: Basic realm="My Realm"');

È la pagina richiesta?

Risposte:


284

Da RFC 1945 (HTTP / 1.0) e RFC 2617 (autenticazione HTTP a cui fa riferimento HTTP / 1.1)

L'attributo realm (senza distinzione tra maiuscole e minuscole) è obbligatorio per tutti gli schemi di autenticazione che presentano una sfida. Il valore del realm (con distinzione tra maiuscole e minuscole), in combinazione con l'URL radice canonica del server a cui si accede, definisce lo spazio di protezione. Questi regni consentono di partizionare le risorse protette su un server in una serie di spazi di protezione, ciascuno con il proprio schema di autenticazione e / o database di autorizzazione. Il valore realm è una stringa, generalmente assegnata dal server di origine, che può avere una semantica aggiuntiva specifica per lo schema di autenticazione.

In breve, le pagine dello stesso regno dovrebbero condividere le credenziali. Se le tue credenziali funzionano per una pagina con il regno "My Realm" , si dovrebbe presumere che la stessa combinazione nome utente e password dovrebbe funzionare per un'altra pagina con lo stesso regno.


7
Alcuni server non forniscono un ambito nelle loro sfide di autenticazione.
orkoden,

5
Quando lavoro con IIS, configuro realm diversi per cartelle virtuali diverse (sotto lo stesso sito). Ma non sono sicuro che sia corretto. Ma sembra funzionare per me. Quando visito una cartella virtuale per un altro regno, mi viene richiesta la credenziale.
smwikipedia,

1
Nota: RFC 2617 è stato aggiornato (NON obsoleto) da RFC 7235
Hawkeye Parker,

117

Un regno può essere visto come un'area (non una pagina particolare, potrebbe essere un gruppo di pagine) per cui vengono utilizzate le credenziali; questa è anche la stringa che verrà mostrata quando il browser apre la finestra di accesso, ad es

Inserisci nome utente e password per <realm name>:

Quando il regno cambia, il browser può mostrare un'altra finestra popup se non ha le credenziali per quel regno particolare.


Come raggruppare le pagine nel regno?
Verde,

@Green The .htaccessva per gerarchia, quindi tutto ciò che si trova in una determinata directory può avere lo stesso regno.
Ja͢ck,

1
@Jack, ho ingenuamente pensato che tutte le pagine con un'intestazione di autenticazione con un determinato regno si trovino in quel regno e non ci sono altre regole. Ho sbagliato?

15

Secondo RFC 7235 , il realmparametro è riservato per la definizione di spazi di protezione (set di pagine o risorse in cui sono richieste credenziali) ed è utilizzato dagli schemi di autenticazione per indicare un ambito di protezione .

Per maggiori dettagli, vedere la citazione seguente (i punti salienti non sono presenti nella RFC):

2.2. Spazio di protezione (regno)

Il parametro di autenticazione "realm" è riservato agli schemi di autenticazione che desiderano indicare un ambito di protezione .

Uno spazio di protezione è definito dall'URI della radice canonica (i componenti dello schema e dell'autorità dell'URI della richiesta effettiva) del server a cui si accede, in combinazione con il valore del realm se presente. Questi regni consentono di partizionare le risorse protette su un server in una serie di spazi di protezione, ciascuno con il proprio schema di autenticazione e / o database di autorizzazione. Il valore realm è una stringa, generalmente assegnata dal server di origine, che può avere una semantica aggiuntiva specifica per lo schema di autenticazione. Nota che una risposta può avere più sfide con lo stesso schema di autenticazione ma con regni diversi. [...]


Nota 1: il framework per l'autenticazione HTTP è attualmente definito dall'RFC 7235 , che aggiorna l' RFC 2617 e rende l' RFC 2616 obsoleto.

Nota 2: il realmparametro non è più sempre richiesto per le sfide .

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.