Tutorial de ASP.NET
Vista Previa de ASP.NET 2.0

Autenticación y Autorización

ASP .NET trabaja conjuntamente con el IIS para el soporte de la autenticación, utilizando autenticación basada en Windows, Digest y Basic. ASP .NET admite el servicio de autenticación Microsoft Passport, el cual proporciona un sencillo soporte y servicio de loggin para los servicios de perfiles. ASP.NET también proporciona un servicio robusto para aplicaciones que quieren usar autenticación basada en formularios. La autenticación basada en formularios utiliza cookies para autentificar usuarios y permite a la aplicación hacer su propia verificación de credenciales.

Es importante darse cuenta de que los servicios de  autenticación de ASP .NET están sometidos a los servicios de autenticación ofrecidos por el IIS. Por ejemplo, para usar la autenticación Basic en una aplicación IIS, debes configurar el uso de dicha autenticación utilizando la herramienta del Administrador de Servicios de Internet.

ASP .NET proporciona 2 tipos de servicios de autorización:

  • Comprobación sobre los ACLs (Listas de control de acceso) o sobre los permisos de un recurso para determinar si la cuenta de usuario autenticada puede acceder a dichos recursos.
  • Autenticación por URL, la cual autoriza a una identidad por zonas en el espacio web.

Para ilustrar la diferencia, consideremos un escenario en el cual una aplicación se configura para permitir acceso anónimo mediante la cuenta IUSR_MYMACHINE. Cuando una petición de una página ASP .NET (por ejemplo “/default.aspx”) es autorizada, se realiza una comprobación contra la ACLs sobre dicho archivo (por ejemplo, c:\inetpub\wwwroot\default.aspx”) para ver si la cuenta IUSR_MYMACHINE tiene permiso para leer ese archivo. Si es correcta, el acceso es autorizado. Si los contenidos de la web residen en un volumen NTFS, y la autorización de Windows se configura sobre el directorio virtual, la autorización de archivos de ejecuta automáticamente.

Para la autenticación por URL, el usuario anónimo se comprueba contra los datos de configuración calculados por la aplicación ASP .NET. Si se permite el acceso a la URL solicitada, la petición es autorizada correctamente. En este caso, ASP .NET comprueba si el usuario anónimo puede acceder a /default.aspx (esto es, la comprobación hecha contra la propia URL, no contra el archivo que la URL resuelve en última instancia).

Puede parecer que apenas no hay diferencia, pero permite a las aplicaciones utilizar combinaciones de autenticación como las basadas en formularios o autenticación Passport, en las cuales los usuarios no corresponden a una maquina o una cuenta de dominio. También permite autorización contra recursos virtuales, para los cuales no hay un archivo físico subyacente al recurso. Por ejemplo, una aplicación puede elegir mapear todas las peticiones para archivos que terminen en .stk a un manejador que atienda “stock quotes” basadas en variables presentes en el la cadena de petición. En dicho caso, no hay un .stk físico contra el que hacer una comprobación ACL, de forma que se usa la autorización URL para controlar el acceso al recurso virtual.

La autorización de archivos se ejecuta siempre contra la cuenta autenticada proporcionada por el IIS. Si se permite el acceso anónimo, esta es la cuenta anónima configurada. De lo contrario, usa una cuenta NT. Esto funciona exactamente de la misma forma que en ASP.

El archivo ACL se configura para un archivo o un directorio dado utilizando la pestaña de Seguridad en la página de propiedades de Explorer. La autenticación por URL se configura como parte del Framework de ASP .NET de una aplicación y está totalmente descrita en Authorizing Users and Roles.

Para activar un servico de autenticación de ASP .NET, debes configurar el elemento <authentication> en el archivo de configuración de la aplicación. Este elemento puede tomar cualquiera de los valores listados en la siguiente tabla:

 

Valor

Descripción

None

Ningún servicio de autenticación ASP .NET esta activo. Observad que el servicio de autenticación de IIS puede estar todavía presente.

Windows

Los servicios de autenticación de ASP .NET adjuntan un WindowsPrincipal (System.Security.Principal.WindowsPrincipal) a la petición actual para permitir la autorización contra grupos o usuarios de NT.

Forms

Los servicios de autenticación de ASP.NET gestionan las cookies y redireccionan a los usuarios no autenticados a una página de registro. Esto a menudo se usa conjuntamente con la opción del IIS de permitir acceso anónimo a la aplicación.

Passport

Los servicios de autenticación de ASP.NET proporcionan un formato conveniente alrededor del servicio ofrecido por el Passport SDK, el cual debe estar instalado en la máquina. 


Por ejemplo, el siguiente archivo de configuración permite autenticación basada en formularios (cookies) para una aplicación:

<configuration>
  <system.web>
    <authentication mode="Forms"/>
  </system.web>
</configuration>