La síntesis de IIS no permite la autenticación de paso a través de solicitudes de proxy

Este artículo le ayuda a resolver el problema en el que se produce un error en la autenticación implícita cuando un cliente envía una solicitud a través de un proxy a un sitio y Microsoft Internet Information Services (IIS) usa la autenticación implícita.

Versión del producto original:   Internet Information Services 8.5, 8.0
Número KB original:   3050055

Síntomas

Imagine la siguiente situación:

  • IIS está configurado para usar la autenticación implícita.
  • El servidor recibe una solicitud con el encabezado de protocolo de transferencia de hipertexto (HTTP). (Esto ocurre si la solicitud de cliente se redirige a través de un proxy).
  • El recurso solicitado está protegido por la autenticación implícita.
  • Se crea una solicitud secundaria en la canalización de IIS. Por ejemplo, se envía una solicitud para el documento predeterminado de un directorio y la dirección URL que se envía tiene una barra diagonal (/) como último carácter.

En este escenario, se produce un error en la autenticación implícita y el servidor devuelve una respuesta 401.

Causa

Por motivos de seguridad, las solicitudes enrutadas a través de un proxy y para las que se crea una solicitud secundaria en la canalización de IIS, IIS no puede confiar en la autenticación implícita.

Solución alternativa

Configure el sitio web para que use un tipo diferente de autenticación. Por ejemplo, use Windows autenticación o autenticación básica sobre seguridad de la capa de transporte (TLS). Si no puede, pruebe los métodos siguientes:

  • Pida al cliente que use una dirección URL de solicitud que incluya el nombre de archivo después del último / carácter.
  • Establezca el modo de canalización administrada del grupo de aplicaciones en Clásico.
  • Use el módulo Url Rewrite para reescribir la ruta de dirección URL de / /filename.

Para usar el módulo Url Rewrite para evitar este problema, configure el módulo de la siguiente manera:

<system.webServer>
    <rewrite>
        <rules>
            <rule name="<a rule name>" enabled="false">
                <match url="(^$|.*/$)" />
                <action type="Rewrite" url="{R:0}<a file name that you want the users to access>" />
            </rule>
        </rules>
    </rewrite>
</system.webServer>