2010-08-26 31 views
13

¿Alguien tiene alguna experiencia de compatibilidad con varios dominios en Autenticación HTTP?Autenticación HTTP - encabezado WWW-Authenticate - múltiples reinos

El sitio web de Microsoft:

Cada autentique cabecera de respuesta contiene un esquema de autenticación disponibles y un reino. Si se admiten varios esquemas de autenticación , el servidor devuelve múltiples autenticados encabezados de respuesta. El valor de dominio distingue entre mayúsculas y minúsculas y define un espacio de protección en el proxy o servidor . Por ejemplo, el encabezado "WWW-Authenticate: Basic Realm =" example "" sería un ejemplo de un encabezado devuelto cuando se requiere la autenticación del servidor .

Esto sugiere que diferentes áreas de un sitio web pueden protegerse utilizando diferentes métodos de autenticación. Lo que nos confunde es cómo determinar qué ámbito debe establecerse en la respuesta del servidor a una solicitud del cliente.

¿Alguien tiene algún ejemplo de cómo funcionan varios reinos?

Respuesta

9

El HTTP specification permite múltiples WWW-Authenticate retos a estar presentes en una respuesta, ya sea dentro de la misma cabecera WWW-Authenticate o el uso de múltiples WWW-Authenticate encabezados dentro de la misma respuesta.

Existen problemas asociados con esto, como se describe en RFC 2617, section 4.6. En teoría, el cliente debe elegir el mecanismo de autenticación más potente disponible, sin embargo, definir cuál es el más fuerte no siempre es obvio.

Nunca he intentado con varios reinos (y el mismo esquema, por ejemplo, Básico), pero no estoy al tanto de nada que lo desautorice. El problema principal con múltiples reinos y el mismo esquema es que es probable que el navegador se confunda en términos de interfaz de usuario, en particular con qué ámbito desafía al usuario.

+0

En cuanto a múltiples desafíos de WWW-Authenticate, ¿hay consenso sobre si usar múltiples encabezados WWW-Authenticate o tener múltiples desafíos dentro del mismo encabezado WWW-Authenticate? –

+1

Según la especificación, se supone que es equivalente, por lo que los agentes de usuario conformes deberían admitir ambos. Si lo hacen en la práctica, no estoy seguro. – Bruno

+3

Para completar: un enlace a algunas pruebas en diferentes navegadores: http://greenbytes.de/tech/tc/httpauth/ – SimonSimCity

4

Tengo un buen ejemplo usando múltiples encabezados de autenticación al usar un sitio sharepoint. Sharepoint ofrece tanto Negociar como NTLM al conectarse primero.

Firefox elige NTLM pero Chrome elige Negociar.

También es una consecuencia que Chrome siempre envíe el encabezado Authorization junto con las otras solicitudes, pero Firefox solo al principio debido al protocolo NTLM challange-response. Vea aquí más explicación http://www.innovation.ch/personal/ronald/ntlm.html

Cuestiones relacionadas