Tengo un sitio que se ejecuta en IIS 7.5 que se puede acceder usando un alias DNS diferente del nombre real del servidor. En IE 8, integrado falla la autenticación, pero en Firefox y Chrome que todo funciona correctamente. (Es decir, presenta una credencial reto un par de veces, a continuación, se muestra una página de error 401.1.)

Me he dado cuenta de que esto es debido a la IE mediante el uso de Kerberos (aka «Negociar») sobre NTLM y Kerberos requiere el registro de un Nombre Principal de Servicio (utilizando SETSPN), de modo que la falta de coincidencia entre el nombre DNS y el nombre del servidor se maneja adecuadamente.

Mi sitio web, sin embargo, no necesita de suplantación, es suficiente para tener por delegación. Así que en lugar de jugar con SetSPN, me gustaría quitar la «negociación» de la lista de WindowsAuthentication métodos en IIS.

He buscado bastante tiempo para averiguar cómo hacer esto en IIS. He jugado con muchos appcmd comandos–, pero no puedo encontrar ejemplos en línea, o averiguar cómo mediante la lectura de la documentación de MSDN o el uso de appcmd /? para hacer appcmd comandos sólo se aplican a una aplicación en particular dentro de un sitio, en lugar de a todo el servidor web. Un par de búsqueda-horas después de más de dos días, y al menos 3 docenas de páginas web visitadas, todavía estoy subiendo infructuosos.

Cómo en tarnation obtengo este hecho, que parece que debería ser así de fácil!

OriginalEl autor ErikE | 2013-04-25

1 Comentario

  1. 12

    Abrir el Editor de Configuración de IIS. Viene con IIS 7.5, o usted puede descargar el De administración de IIS pack para IIS 7.0. Navegue hasta el alcance que desea afectar (servidor, sitio web o aplicación) y, a continuación, abra el icono:

    Quitar NEGOCIAR desde WindowsAuthentication en IIS.

    Cambiar la Sección a system.webServer/security/authentication/windowsAuthentication:

    Quitar NEGOCIAR desde WindowsAuthentication en IIS

    Haga clic en el providers elemento y, a continuación, haga clic en Edit Items a la derecha. Seleccione la opción «Negociar» punto y haga clic en «Eliminar»:

    Quitar NEGOCIAR desde WindowsAuthentication en IIS

    Cerrar el cuadro de diálogo y haga clic en Apply en el Actions panel de la derecha.

    Su problema está resuelto! No más de Kerberos/negociar!

    Nota: también puede hacer clic en Generate Script en el panel de acciones para mostrar el código que va a hacer el cambio, ya sea en C#, javascript, o con appcmd desde la línea de comandos.

    De referencia, aquí está la appcmd declaración para hacer el trabajo sin utilizar el Editor de Configuración.

    appcmd.exe set config "Virtual/path/to/application" -section:system.webServer/security/authentication/windowsAuthentication /-"providers.[value='Negotiate']" /commit:apphost
    

    OriginalEl autor ErikE

Dejar respuesta

Please enter your comment!
Please enter your name here