Share via


Utilizar la autenticación de IIS con la suplantación de ASP.NET

Actualización: noviembre 2007

Los Servicios de Internet Information Server (IIS) proporcionan varios esquemas de autenticación que se pueden emplear en la protección de una aplicación Web. Los escenarios comunes incluyen el uso de la autenticación de Windows integrada (NTLM) en una intranet corporativa para determinar la identidad de los usuarios de la aplicación en función del correspondiente inicio de sesión de Windows, o especificando una identidad anónima única para una aplicación en particular. La identidad de Windows proporcionada por IIS puede utilizarse posteriormente para determinar si la aplicación Web tiene acceso a un recurso protegido de Windows, como un archivo protegido mediante una lista de control de acceso (ACL), o un recurso de red, como un servidor de bases de datos o archivos. Se puede configurar ASP.NET para utilizar la identidad de Windows proporcionada por IIS mediante la suplantación.

De forma predeterminada, ASP.NET se configura para utilizar el modo de autenticación de Windows, que se aplica a la identidad de Windows proporcionada por IIS a la propiedad User del objeto HttpContext actual. De este modo, se puede determinar la identidad proporcionada por IIS mediante la propiedad User (la propiedad Name del usuario está en blanco cuando se utiliza la identificación anónima), pero no se utiliza la identidad proporcionada como WindowsIdentity para la página actual. WindowsIdentity para una aplicación se utiliza cuando se determina si la aplicación tiene acceso a un archivo o recurso de red en particular.

Para configurar ASP.NET de modo que se suplante la identidad de Windows proporcionada por IIS como WindowsIdentity para la aplicación ASP.NET, se ha de editar el archivo Web.config de la aplicación y establecer el atributo impersonate del elemento de configuración identity en true, como se muestra en el ejemplo siguiente.

<configuration>
  <system.web>
    <identity impersonate="true" />
  </system.web>
</configuration>

La suplantación es independiente del mode de autenticación configurado mediante el elemento de configuración authentication. El elemento de autenticación se utiliza para determinar la propiedad User del HttpContext actual. La suplantación se utiliza para determinar la WindowsIdentity de la aplicación ASP.NET.

A continuación se describe la forma de habilitar la suplantación utilizando un escenario de intranet como ejemplo. En este escenario, se configura un sitio Web corporativo interno para enviar información a los empleados. Sin embargo, parte de la información está dirigida únicamente a los directivos. La información dirigida a los directivos se puede exponer en un subdirectorio del sito de información de los empleados, de forma que se pueda limitar el acceso a dicha información. IIS determina la identidad del usuario mediante la seguridad de Windows integrada (NTLM). En este escenario se supone que:

  • El servidor Web tiene instalados Microsoft Windows NT, Microsoft Windows 2000 Server o Microsoft Windows Server 2003.

  • Servicios de Microsoft Internet Information Server (IIS) 6.0 es el servidor Web.

  • El disco duro del servidor Web se formatea utilizando NTFS.

  • Todos los empleados que necesitan acceso a los recursos restringidos están utilizando Windows.

Como administrador de la aplicación en este escenario, necesitaría realizar las acciones siguientes:

  1. Cree los archivos y los directorios que se muestran en la ilustración siguiente.

  2. Cree un grupo de Windows denominado Managers que contenga todos los usuarios que deben tener acceso al archivo ManagerInfo.aspx.

  3. Utilice el Administrador de Servicios de Internet Information Server (IIS) con el fin de deshabilitar la autenticación anónima para la aplicación y habilitar la autenticación de Windows integrada.

  4. En el archivo Web.config de la aplicación, establezca el atributo impersonate del elemento identity en true.

  5. Establezca la lista de control de acceso (ACL) de NTFS para el directorio ManagerInformation de modo que se permita el acceso sólo a las identidades incluidas en el grupo Managers de Windows y a las cuentas requeridas por el sistema. Es necesario asegurarse de que se incluye la identidad del proceso de ASP.NET. La identidad del proceso de ASP.NET para Windows 2000 o Windows NT es la cuenta de ASPNET local. La identidad del proceso de ASP.NET para Windows 2003 y posterior es la identidad del grupo de aplicaciones de IIS que, de forma predeterminada, es la cuenta NETWORK SERVICE.

    Nota:

    Las funciones de ASP.NET proporcionan un medio alternativo para restringir el acceso a áreas de la aplicación Web en la configuración de la aplicación. Para obtener más información, vea Administrar autorizaciones con funciones.

Vea también

Conceptos

Procedimientos de seguridad básicos para aplicaciones Web

Otros recursos

Seguridad de aplicaciones Web ASP.NET