Seguridad Web de HttpChannel
La seguridad Web se basa en estándares de Internet para asegurar la comunicación y la autenticación. La clase HttpChannel utiliza redes administradas en el remitente y Servicios de Internet Information Server (IIS) con ASP.NET en el receptor para proporcionar seguridad Web. Las credenciales (nombre de usuario, contraseña y, opcionalmente, dominio) se pueden establecer en las propiedades de HttpChannel. La infraestructura de interacción remota pasa las credenciales a System.Net, que a su vez las envía al servidor. Entre las propiedades del receptor de mensajes del canal se incluye PreAuthenticate que, de manera predeterminada, envía las credenciales con el primer mensaje.
Autenticación
Las aplicaciones alojadas en ASP.NET se pueden configurar para autenticarse mediante la combinación de la seguridad de IIS y la seguridad de ASP.NET. El directorio virtual de la aplicación ASP.NET está configurado para usar la seguridad en IIS y ASP.NET. Consulte la documentación de IIS y el tema Proteger aplicaciones Web de ASP.NET para obtener más información sobre cómo configurar IIS y ASP.NET para la autenticación.
Comunicación segura en ASP.NET
El HttpChannel alojado en IIS con ASP.NET admite el envío y la recepción de comunicaciones seguras mediante SSL (Secure Sockets Layer). Vea la documentación de IIS para obtener información sobre la configuración de SSL. Incluya el texto https así como la dirección URL apropiada al principio de las llamadas a Activator.CreateInstance, Activator.GetObject o los elementos del archivo de configuración de .NET remoting, o se usarán direcciones URL a cualquier sitio para especificar un objeto remoto, un servicio Web XML remoto o una aplicación de interacción remota.
Para determinar si la conexión HTTP es segura, llame a la propiedad HttpContext.Request para obtener el objeto HttpRequest y, a continuación, llame a HttpRequest.IsSecureConnection.
Anonymous
Utilice esta opción para permitir a los usuarios establecer una conexión anónima. El servidor permite que el usuario inicie sesión con una cuenta anónima o de invitado.
**Nota **Debe desactivar la opción Anonymous si desea utilizar la autenticación básica, implícita o integrada de Windows.
Autenticación básica
La autenticación básica es un sistema de seguridad que utiliza un mecanismo HTTP estándar en el que la información relativa al usuario se envía y se recibe en forma de caracteres de texto que se leen con toda claridad, en lugar de como información binaria en secuencias de bits. La autenticación básica usa una cadena codificada en Base64 que contiene el nombre de usuario y la contraseña. En este tipo de autenticación, las contraseñas y los nombres de usuario se codifican pero no se cifran. Es importante resaltar que la autenticación básica da como resultado la transmisión de contraseñas a través de la red en un formato sin cifrar. Un usuario no autorizado que disponga de una herramienta de supervisión de red puede interceptar los nombres de usuario y las contraseñas.
La autenticación básica puede ser útil cuando la aplicación sólo necesita algún tipo de identificador para la aplicación que la llama.
Autenticación implícita
La autenticación implícita envía a través de la red un valor hash en vez de la contraseña. Este método sirve para atravesar servidores proxy y otros servidores de seguridad.
La autenticación implícita es un esquema de desafío y respuesta que desafía utilizando un valor nonce (una cadena de datos especificada por el servidor). Una respuesta válida contiene una suma de comprobación del nombre de usuario, la contraseña, el valor nonce dado, el método HTTP y el identificador uniforme de recursos (URI) solicitado.
La autenticación implícita corrige muchos de los puntos débiles de la autenticación básica. Lo más importante es que cuando se utiliza la autenticación implícita la contraseña no se transmite en forma de texto sin cifrar. La autenticación implícita también puede atravesar los servidores proxy, a diferencia de la autenticación integrada de Windows.
La autenticación implícita resulta útil cuando la aplicación necesita un grado de autenticación superior al de la básica.
Autenticación de cookies
Normalmente, la autenticación de cookies sirve para hacer referencia a un sistema por el que las solicitudes no autenticadas se redirigen a un formulario HTML mediante redirección en el cliente HTTP. El usuario proporciona las credenciales y envía el formulario. Si la aplicación autentica la solicitud, el sistema emite una cookie que contiene las credenciales, en un formato u otro, o una clave para readquirir la identidad. Las solicitudes posteriores se emiten con la cookie en los encabezados y son autenticadas y autorizadas por un controlador ASP.NET mediante el método de validación que requiera la aplicación.
Hay que tener en cuenta que la autenticación de cookies se utiliza a menudo para personalizar el contenido de un usuario conocido. En algunos de estos casos, el problema a veces se encuentra en la identificación y no en la autenticación; por tanto, basta con almacenar simplemente el nombre de usuario (en una cookie duradera) y utilizarlo para tener acceso a la información de personalización.
Autenticación integrada de Windows
La autenticación integrada de Windows usa un intercambio criptográfico con la aplicación Microsoft Internet Explorer del usuario.
La autenticación integrada de Windows (antes denominada tanto autenticación NT LAN Manager (o NTLM) como autenticación mediante desafío y respuesta de Windows NT), ofrece mayor seguridad que la autenticación básica. Este esquema de autenticación resulta especialmente eficaz en un entorno de intranet en el que los usuarios tengan cuentas de dominio de Windows.
En la autenticación integrada de Windows, el explorador intenta usar las credenciales actuales del usuario, correspondientes al inicio de sesión en el dominio. Si esas credenciales son rechazadas, la autenticación integrada de Windows pide al usuario un nombre de usuario y una contraseña mediante un cuadro de diálogo. Cuando se utiliza la autenticación integrada de Windows, la contraseña del usuario no se pasa del cliente al servidor. Si un usuario inició sesión como usuario del dominio en un equipo local, no será necesario autenticarlo otra vez cuando obtenga acceso a un equipo de red de ese dominio.
El usuario no tiene que proporcionar un nombre de usuario y una contraseña para cada solicitud HTTP, sino que el cuadro de diálogo aparece sólo cuando las credenciales almacenadas en caché no tienen suficientes permisos para obtener acceso a una determinada página o archivo.
Vea también
Seguridad | Seguridad basada en la función en aplicaciones administradas