Autenticación de Windows a IIS en el servidor local con url totalmente calificada
9
Tengo una aplicación web configurada en IIS 7 configurada con la autenticación de Windows. Puedo autenticarme en la máquina a través de su URL totalmente calificada desde cualquier otra máquina y utiliza el Dominio adecuado. Sin embargo, cuando intento conectarme a la máquina desde el dominio completo (ya sea en otro servicio o solo a través de la URL en IE), el mensaje de inicio de sesión de Windows intenta forzar el uso de la computadora como dominio, y no dominio adecuado para iniciar sesión. Intentando especificar el dominio con domain\usernameo [email protected]falla.
Debo tener en cuenta que la visualización de la aplicación web a través localhostde la máquina funciona, pero el uso de la site.company.com/webserviceURL de estilo completo no funciona en la máquina local, porque el dominio de inicio de sesión es incorrecto. ¿Qué puedo hacer para que use el dominio de inicio de sesión adecuado?
Esto se debe a una característica de seguridad conocida como LoopbackCheck.
Mensaje de error cuando intenta acceder a un servidor localmente utilizando su FQDN o su alias CNAME después de instalar Windows Server 2003 Service Pack 1: "Acceso denegado" o "Ningún proveedor de red aceptó la ruta de red dada" http://support.microsoft .com / kb / 926642
Hay dos resoluciones:
Método 1 (recomendado): cree los nombres de host de la Autoridad de seguridad local a los que se puede hacer referencia en una solicitud de autenticación NTLM. Para hacer esto, siga estos pasos para todos los nodos en la computadora cliente:
Haga clic en Inicio, haga clic en Ejecutar, escriba regedit y luego haga clic en Aceptar.
Busque y haga clic en la siguiente subclave del registro: HKEY_LOCAL_MACHINE \ SYSTEM \ CurrentControlSet \ Control \ Lsa \ MSV1_0
Haga clic con el botón derecho en MSV1_0, seleccione Nuevo y luego haga clic en Valor de cadenas múltiples.
En la columna Nombre, escriba BackConnectionHostNames y presione ENTRAR.
Haga clic con el botón derecho en BackConnectionHostNames y luego haga clic en Modificar.
En el cuadro Información del valor, escriba CNAME o el alias DNS, que se usa para los recursos compartidos locales en la computadora, y luego haga clic en Aceptar.
Nota: Escriba cada nombre de host en una línea separada.
Nota: Si la entrada de registro BackConnectionHostNames existe como un tipo REG_DWORD, debe eliminar la entrada de registro BackConnectionHostNames.
Salga del Editor del registro y luego reinicie la computadora.
Método 2: deshabilite la verificación de bucle de autenticación mediante la configuración de la entrada de registro DisableLoopbackCheck en la subclave de registro HKEY_LOCAL_MACHINE \ SYSTEM \ CurrentControlSet \ Control \ Lsa en 1. Para establecer la entrada de registro DisableLoopbackCheck en 1, siga estos pasos en el equipo cliente:
Haga clic en Inicio, haga clic en Ejecutar, escriba regedit y luego haga clic en Aceptar.
Busque y haga clic en la siguiente subclave del registro: HKEY_LOCAL_MACHINE \ SYSTEM \ CurrentControlSet \ Control \ Lsa
Haga clic con el botón derecho en Lsa, seleccione Nuevo y luego haga clic en Valor DWORD.
Escriba DisableLoopbackCheck y presione ENTRAR.
Haga clic con el botón derecho en DisableLoopbackCheck y luego haga clic en Modificar.
En el cuadro Información del valor, escriba 1 y luego haga clic en Aceptar.
Lo que hizo el truco para mí fue la segunda opción - DisableLoopbackCheckingenHKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Lsa
Ícaro
1
Puedo decirle, en base a cierta experiencia en la configuración de SSO, que IE pasará automáticamente un ticket de Kerberos para iniciar sesión solo si el sitio y el cliente están juntos en la intranet, o si el sitio está en la zona de confianza. Si IE ve http://site.company.com/webservice , asumirá que el sitio está en Internet y no pasará las credenciales para iniciar sesión.
Encontramos dos cosas que funcionan para permitir que el FQDN en la intranet sea proporcionar un certificado al servidor web y usar SSL, o agregarlo a la Zona de confianza.
Espero que esto ayude en relación con su configuración.
Esto no resuelve el problema. Ya intenté agregar el FQDN a la zona de confianza, pero fue en vano. Sin embargo, creo que eso resuelve un problema diferente. Agregarlo a la zona de confianza permite la autenticación automática , que no necesito; estoy de acuerdo con especificar las credenciales, pero el problema es que no está aceptando mi dominio especificado para las credenciales de inicio de sesión: está atascado en el nombre de la computadora.
DisableLoopbackChecking
enHKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Lsa
Puedo decirle, en base a cierta experiencia en la configuración de SSO, que IE pasará automáticamente un ticket de Kerberos para iniciar sesión solo si el sitio y el cliente están juntos en la intranet, o si el sitio está en la zona de confianza. Si IE ve http://site.company.com/webservice , asumirá que el sitio está en Internet y no pasará las credenciales para iniciar sesión.
Hay información útil en este enlace sobre IIS, IE y Kerberos. http://blogs.msdn.com/b/friis/archive/2009/12/31/things-to-check-when-kerberos-authentication-fails-using-iis-ie.aspx
Encontramos dos cosas que funcionan para permitir que el FQDN en la intranet sea proporcionar un certificado al servidor web y usar SSL, o agregarlo a la Zona de confianza.
Espero que esto ayude en relación con su configuración.
fuente