¿Qué es el "reino" en la autenticación básica?

307

Estoy configurando la autenticación básica en un sitio php y encontré esta página en el manual php que muestra la configuración. ¿Qué significa "reino" aquí en el encabezado?

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

¿Es la página que se solicita?

RayLoveless
fuente

Respuestas:

284

De RFC 1945 (HTTP / 1.0) y RFC 2617 (Autenticación HTTP referenciada por HTTP / 1.1)

El atributo de reino (no distingue entre mayúsculas y minúsculas) se requiere para todos los esquemas de autenticación que presentan un desafío. El valor del reino (distingue entre mayúsculas y minúsculas), en combinación con la URL raíz canónica del servidor al que se accede, define el espacio de protección. Estos reinos permiten que los recursos protegidos en un servidor se particionen en un conjunto de espacios de protección, cada uno con su propio esquema de autenticación y / o base de datos de autorizaciones. El valor del reino es una cadena, generalmente asignada por el servidor de origen, que puede tener una semántica adicional específica del esquema de autenticación.

En resumen, las páginas en el mismo reino deben compartir credenciales. Si sus credenciales funcionan para una página con el reino "Mi reino" , se debe suponer que la misma combinación de nombre de usuario y contraseña debería funcionar para otra página con el mismo reino.

Tim Cooper
fuente
77
Algunos servidores no proporcionan un ámbito en sus desafíos de autenticación.
Orkoden
55
Cuando trabajo con IIS, configuro diferentes reinos para diferentes carpetas virtuales (en el mismo sitio). Pero no estoy seguro de si esto es correcto. Pero parece funcionar para mí. Cuando visito una carpeta virtual para un reino diferente, recibí una solicitud de credencial.
smwikipedia
1
Nota: RFC 2617 ha sido actualizado (NO obsoleto) por RFC 7235
Hawkeye Parker
117

Un reino puede verse como un área (no una página en particular, podría ser un grupo de páginas) para el que se usan las credenciales; esta es también la cadena que se mostrará cuando el navegador abra la ventana de inicio de sesión, por ejemplo

Por favor ingrese su nombre de usuario y contraseña para <realm name>:

Cuando el reino cambia, el navegador puede mostrar otra ventana emergente si no tiene credenciales para ese reino en particular.

Jack
fuente
¿Cómo agrupar páginas en el reino?
Verde
@Green .htaccessva por jerarquía, por lo que cualquier cosa que esté bajo un determinado directorio puede recibir el mismo dominio.
Ja͢ck
1
@ Jack, ingenuamente pensé que todas las páginas con un encabezado de autenticación con un dominio dado están en ese reino y no hay otras reglas. ¿Me equivoco?
15

Según el RFC 7235 , el realmparámetro está reservado para definir espacios de protección (conjunto de páginas o recursos donde se requieren credenciales) y es utilizado por los esquemas de autenticación para indicar un alcance de protección .

Para obtener más detalles, consulte la cita a continuación (los aspectos más destacados no están presentes en el RFC):

2.2. Espacio de protección (Reino)

El parámetro de autenticación "reino" está reservado para su uso por esquemas de autenticación que desean indicar un alcance de protección .

El espacio de protección está definido por el URI raíz canónico (el esquema y los componentes de autoridad del URI de solicitud efectivo) del servidor al que se accede, en combinación con el valor del reino si está presente. Estos reinos permiten que los recursos protegidos en un servidor se particionen en un conjunto de espacios de protección, cada uno con su propio esquema de autenticación y / o base de datos de autorizaciones. El valor del reino es una cadena, generalmente asignada por el servidor de origen, que puede tener una semántica adicional específica del esquema de autenticación. Tenga en cuenta que una respuesta puede tener múltiples desafíos con el mismo esquema de autenticación pero con diferentes reinos. [...]


Nota 1: El marco para la autenticación HTTP está definido actualmente por el RFC 7235 , que actualiza el RFC 2617 y hace que el RFC 2616 sea obsoleto.

Nota 2: el realmparámetro ya no se requiere siempre en los desafíos .

cassiomolin
fuente