10 votos

Safari 7 no puede conectarse a la intranet utilizando la autenticación HTTP

Consulte la siguiente actualización para obtener nueva información sobre las solicitudes HTTP reales que se producen bajo el capó.

Así que empecé un nuevo trabajo en octubre. Se trata de una tienda con Windows, y utilizan IIS y Active Directory para un montón de cosas internas. Tienen un sitio de intranet en intranet.companyname.com .

En Chrome en Mavericks, cuando voy allí, me aparece el esperado pequeño desplegable de autentificación HTTP:

What Chrome does; this is the sort of thing I SHOULD be getting in Safari

donde puedo escribir mi nombre de usuario y contraseña. No soy muy rápido con Active Directory, pero supongo que msgd es el dominio de Active Directory en el que estoy, así que escribo msgd\lheidbreder y mi contraseña, y puedo iniciar sesión con éxito en Chrome.

Allá por octubre, la primera vez que probé esto en Safari, tuve un comportamiento extraño; como que veía lo de la contraseña, pero luego no funcionaba cuando ponía mis credenciales. No recuerdo exactamente lo que hizo.

Pero después de ese primer intento, y en cada intento desde entonces, cuando intento ir a intranet.companyname.com Safari muestra una pantalla en blanco:

What Safari 7 on Mavericks does when I try to connect to my intranet

La pantalla no cambia, y la barra de progreso se llena un 20% y se queda ahí.


ACTUALIZACIÓN

Ejecuté una aplicación para espiar las peticiones HTTP, y descubrí lo que esto estaba haciendo entre bastidores. No está simplemente sentado allí; Safari está realmente solicitando la página casi 1000 veces por segundo y cada vez, obtiene un error 401 y una página de error HTML con el título "No está autorizado a ver esta página".

En un ejemplo de solicitud en medio de un intento de carga, Safari envía esto Authorization cabezazo:

Negotiate YEgGBisGAQUFAqA+MDygDjAMBgorBgEEAYI3AgIKoioEKE5UTE1TU1AAAQAAAAUCiGIAAAAAGAAAAAAAAAAYAAAABgGwHQ8AAAA=

Y el servidor responde con esto WWW-Authenticate cabezazo:

Negotiate oYIBIzCCAR+gAwoBAaEMBgorBgEEAYI3AgIKooIBCASCAQROVExNU1NQAAIAAAAOAA4AOAAAAAUCiWKPhp0o8/Y/9gAAAAAAAAAAvgC+AEYAAAAFAs4OAAAAD0EAUgBJAFMAVwBFAEIAAgAOAEEAUgBJAFMAVwBFAEIAAQAMAE4ARQBXAFcARQBCAAQAKgBhAHIAaQBzAHcAZQBiAC4AYQByAGkAcwB0AG8AdABsAGUALgBuAGUAdAADADgATgBFAFcAVwBFAEIALgBhAHIAaQBzAHcAZQBiAC4AYQByAGkAcwB0AG8AdABsAGUALgBuAGUAdAAFACoAYQByAGkAcwB3AGUAYgAuAGEAcgBpAHMAdABvAHQAbABlAC4AbgBlAHQAAAAAAA==

En la siguiente solicitud, Safari envía un mensaje idéntico Authorization y luego el servidor responde con una cabecera ligeramente diferente WWW-Authenticate cabezazo:

Negotiate oYIBIzCCAR+gAwoBAaEMBgorBgEEAYI3AgIKooIBCASCAQROVExNU1NQAAIAAAAOAA4AOAAAAAUCiWLa6vytPOG0owAAAAAAAAAAvgC+AEYAAAAFAs4OAAAAD0EAUgBJAFMAVwBFAEIAAgAOAEEAUgBJAFMAVwBFAEIAAQAMAE4ARQBXAFcARQBCAAQAKgBhAHIAaQBzAHcAZQBiAC4AYQByAGkAcwB0AG8AdABsAGUALgBuAGUAdAADADgATgBFAFcAVwBFAEIALgBhAHIAaQBzAHcAZQBiAC4AYQByAGkAcwB0AG8AdABsAGUALgBuAGUAdAAFACoAYQByAGkAcwB3AGUAYgAuAGEAcgBpAHMAdABvAHQAbABlAC4AbgBlAHQAAAAAAA==

Repita ad infinitum.


He intentado borrar todo lo que coincide intranet en Keychain Access y limpiando toda mi caché/cookies, para ver si podía restaurar el extraño comportamiento original, pero no funcionó.

¿Tengo algún tipo de dominio raro? ¿Qué más puedo probar para diagnosticar esto?

8voto

Otto G Puntos 66

Puedo confirmar que veo el mismo problema con Safari 7.0.2 (9537.74.9), con todas las actualizaciones actuales de Mac OS X Mavericks instaladas. (Miles de paquetes de solicitud por segundo con el mismo tipo de contenido descrito anteriormente).

Sin embargo, aunque esto puede ayudar o no al autor original, he descubierto que este problema sólo se produce si el servidor de Windows tiene Autenticación Integrada de Windows (también conocida como Autenticación NTLM) y Autenticación negociada activada.

El servidor envía entonces estas dos cabeceras:

WWW-Authenticate: Negotiate
WWW-Authenticate: NTLM

Safari responderá:

Authorization: Negotiate YEgGBisGAQUFAqA+MDygDjAMBgorBgEEAYI3AgIKoioEKE5UTE1TU1AAAQAAAAUCiGIAAAAAGAAAAAAAAAAYAAAABgGwHQ8AAAA=

Y a partir de ahí, el bucle se pondrá en marcha.

Pero si la autenticación negociada no está activada en el servidor, sólo habrá una cabecera WWW-Authenticate:

WWW-Authenticate: NTLM

Y la respuesta de Safari será algo así:

Authorization: NTLM TlRMTVNTUAABAAAAB4IIAAAAAAAAAAAAAAAAAAAAAAA=

Esto funcionará bien. Esencialmente, parece que Negotiate está roto en Safari, y como el servidor envía Negotiate primero, indicando una preferencia por él, Safari lo intentará y entrará en un bucle infinito que le impide volver a NTLM.

Por lo tanto, si se puede persuadir al administrador del servidor para que desactive Negociar en la configuración de la autenticación, el problema puede estar resuelto.

Debo añadir que Firefox envía la cabecera "Authorization: NTLM ..." independientemente de si el servidor proporciona Negotiate además de NTLM o no. Presumiblemente, Negotiate no está implementado en Firefox.


Actualización

Safari 7.0.3 (9537.75.14) sigue presentando el mismo problema.

Anteriormente informamos del problema como un error en bugreport.apple.com, pero el error se cerró como un duplicado de un error anterior, cuyo contenido no podemos ver, salvo que sigue marcado como abierto.

Actualización 2

Puedo confirmar el hallazgo de hauns de que la autenticación funciona con Safari 7.0.4 (9537.76.4).

Actualización 3

Este problema ha vuelto en Safari 7.0.5 (9537.77.4)

Actualización 4

Este problema sigue estando presente en Safari 7.0.6 (9537.78.2), tal y como señala hauns, con volúmenes cifs o smb montados.

3voto

ban-G Puntos 390

Safari 7.0.5 todavía tiene el problema: la autenticación se rompe si el buscador comparte recursos de red a través de SMB: (o CIFS:). una vez que todos los volúmenes de red conectados son desmontados, Safari reanuda la autenticación correcta.

Edición: Sigue presente en Yosemite 10.10.1/Safari 8.0.2
Edición 2: Sigue presente en El Capitan 10.11.2/Safari 9.0.2.

Véase también: https://discussions.apple.com/message/27727310#27727310

1voto

MountainX Puntos 287

Tenemos el mismo problema. Por eso aún no hemos actualizado nuestros Macs a Mavericks. Parece que intenta iniciar sesión en la Intranet sin credenciales de dominio (Intranet 'en blanco'). Debería utilizar el dominio \username. Puedo entender que esto puede ser frustrante, pero parece que la autenticación no está en safari.

En unos pocos segundos, se eliminarán los troncos.

Sin embargo, Firefox parece funcionar muy bien.

1voto

Splanky222 Puntos 26

Puede que sea una posibilidad remota, pero si tienes un ticket Kerberos (por haber iniciado sesión en otro servicio), puede que Safari esté intentando utilizarlo.

Abra /System/Library/CoreServices/Ticket Viewer.app para ver si tiene algún ticket de Kerberos. Si es así, haga clic en el ticket, Eliminar identidad y vuelva a intentarlo.

Alternativamente, si no aparece nada en la lista, pruebe a utilizar Añadir Identidad y ver si eso funciona con Safari.

Firefox y Chrome no utilizan Kerberos, creo, por lo que te pedirán las credenciales por separado.

0voto

Tony Williams Puntos 4903

Los llaveros fueron una buena idea, pero no fueron lo suficientemente lejos.

En Safari, si busca en la sección Safari menú verá Reset Safari... Seleccione esta opción y se borrará una serie de cachés.

Ahora abierto Safari > Preferences > Autofill y apagar User names and passwords . Ahora seleccione Passwords y eliminar cualquier contraseña que aparezca allí. Seleccione Privacy y haga clic en Remove All Website Data . Seleccione Extensions y si tiene alguna extensión instalada cambie las extensiones a Off .

Ahora ve y prueba tu sitio web. Una vez que hayas hecho el intento ve y echa un vistazo a Privacy para ver si se ha dejado alguna galleta y Passwords para ver si Safari ha guardado tu contraseña.

Esto podría acercarte a una solución. Cuéntanos cómo va después de eso. Si Chrome funciona, me encantaría saber exactamente qué es lo que funciona. ¿Podría ser necesario un poco más de husmeo?

Sólo para reírse, pruebe la URL http://username:password@intranet.example.com/ (sustituyendo los bits, obviamente) y ver qué pasa.

AppleAyuda.com

AppleAyuda es una comunidad de usuarios de los productos de Apple en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X