INFORMACIÓN: Ayuda a proteger la autenticación de formularios mediante Secure Sockets Layer (SSL)

Id. de artículo: 813829 - Ver los productos a los que se aplica este artículo
Este artículo hace referencia al siguiente espacio de nombres de la Biblioteca de clases de Microsoft .NET Framework:
  • System.Web.Security
Expandir todo | Contraer todo

En esta página

Resumen

De forma predeterminada, la cookie que contiene el vale de autenticación de formularios no es segura cuando utilice autenticación de formularios en una aplicación Web de Microsoft ASP.NET. En este artículo se describe cómo ayude autenticación mediante formularios segura mediante Secure Sockets Layer (SSL). Este artículo también describe las opciones de implementación adicionales y formas alternativas para la autenticación de formularios seguro.

Más información

Autenticación basada en formularios es un servicio de autenticación de ASP.NET que permite a las aplicaciones para proporcionar su propia interfaz de inicio de sesión y realizar comprobación de credenciales personalizadas. Con la autenticación de formularios, ASP.NET autentica los usuarios y redirecciona a los usuarios no autenticados a la página de inicio de sesión especificado por el atributo loginUrl del <forms> elemento en el archivo Web.config. Cuando proporciona credenciales mediante el formulario de inicio de sesión, la aplicación autentica la solicitud y, a continuación, el sistema emite una clase FormsAuthenticationTicket en el formulario de una cookie. La clase FormsAuthenticationTicket se pasa como una cookie de respuesta para posteriores solicitudes del cliente autenticado de Web.

Aunque la autenticación de formularios proporciona un medio flexible de autenticación, debe considerar detenidamente algunos aspectos importantes cuando puede ayudar a proteger una aplicación ASP.NET. Se debe proteger las credenciales de inicio de sesión inicial mediante SSL porque las credenciales se envían al servidor como texto sin formato. También debe asegurarse de que ayuda a proteger la cookie que contiene el vale de autenticación de formularios. Para ello, utilice SSL en todas las páginas para ayudar a proteger el vale. Como alternativa, puede cifrar el vale de autenticación de formularios estableciendo el atributo de protección de la <forms> clase de elemento en todo o para cifrar en el archivo Web.config y utilice el método Encrypt de la FormsAuthentication para cifrar el vale. Para obtener más información acerca del método Encrypt de la clase FormsAuthentication , consulte la "" sección de este artículo.

Ventajas de la autenticación mediante formularios

  • Autenticación de formularios admite la autenticación con un datos personalizados almacén, como una base de datos de Microsoft SQL Server o Active servicios de directorio. Para obtener más información, vea la sección "REFERENCES" de este artículo.
  • Autenticación de formularios admite la autorización basada en funciones con funciones de búsqueda de un almacén de datos.
  • Autenticación mediante formularios se integra sin problemas el Web interfaz de usuario. Para obtener más información, vea la sección "REFERENCES" de este artículo.
  • ASP.NET proporciona gran parte de la infraestructura. Relativamente poco código es necesario en comparación con las versiones 3.0 y anteriores de páginas Active Server de Microsoft
  • La autenticación de formularios de ASP.NET no requiere Microsoft Internet Explorer. Autenticación mediante formularios es compatible con un clientes de explorador de gran intervalo de Web.

Cómo segura de autenticación de formularios de creación de Ayuda

  • Utilizar SSL para todas las páginas.
  • Utilice el método Encrypt de la clase FormsAuthentication .

Utilizar SSL para todas las páginas

Asegurarse para que la cookie de autenticación sigue siendo segura durante una sesión de explorador cliente mediante cifrado de SSL para ayudar a seguro el acceso seguro a todas las páginas. Utilizar cifrado SSL en la aplicación, ayuda a nadie de poner en peligro la cookie de autenticación y de transmisión de otra información valiosa.

Establezca el valor de la propiedad requireSSL en true en el archivo Web.config. Esto coloca SSL en lugar de cuando la cookie se envía al explorador. Si no establece el valor de requireSSL en true , el formulario produce una excepción o no se autentica con la cookie.

Cuando requireSSL se establece en true , la conexión cifrada ayudará a proteger las credenciales del usuario y ASP.NET establece la propiedad HttpCookie.Secure para la cookie de autenticación. El explorador compatible no devuelve la cookie a menos que la conexión utiliza SSL. En el ejemplo siguiente se muestra cómo hacerlo en el archivo Web.config de la aplicación:
 <configuration>
 <system.web>
   <authentication mode="Forms">
     <forms name=".ASPXAUTH"
       loginUrl="login.aspx" 
       protection="All"
       timeout="20"
       requireSSL="true">
     </forms>
   </authentication > 
   <authorization>
     <deny users="?" />
   </authorization>
 </system.web>
</configuration>
el ejemplo siguiente toma acción si se establece la cookie para transmitir de forma segura:

código Visual C# .NET
 string cookieName = FormsAuthentication.FormsCookieName.ToString(); 
 HttpCookie MyCookie = Context.Request.Cookies[cookieName];

 if (MyCookie.Secure)
 {
      Response.Write("The cookie is secure with SSL.");
      // Add other required code here.
 } 

código de Visual Basic .NET
   Dim cookieName As String = FormsAuthentication.FormsCookieName.ToString
   Dim MyCookie As HttpCookie = Context.Request.Cookies(cookieName)
   If MyCookie.Secure Then
      Response.Write("The cookie is secure with SSL.")
      ' Add other required code here.
   End If

Uso el método de la clase FormsAuthentication de cifrar

Si sólo se utiliza SSL en la página Web de inicio de sesión inicial para cifrar las credenciales que se pasan para la autenticación, asegúrese de que está protegido el vale de autenticación de formularios está contenido en una cookie. Los vales de autenticación de formularios deben estar protegidos porque la cookie se pasa entre el cliente y el servidor en cada solicitud Web posterior. Para cifrar el vale de autenticación de formularios, configure el atributo de protección de la <forms> clase de elemento y utilice el método Encrypt de la FormsAuthentication para cifrar el vale.
<authentication mode="Forms">
  <forms name="MyAppFormsAuth"
       loginUrl="login.aspx"
       protection="All"
       timeout="20" 
       path="/" >
  </forms>
</authentication> 
porque el atributo protection está establecido en All , cuando la aplicación llama al método FormsAuthentication.Encrypt , el vale debe validarse y cifrarse.

Llame al método Encrypt al crear los formularios de vale de autenticación. Normalmente, crear el vale en el controlador de eventos de Inicio de sesión de la aplicación.

código Visual C# .NET
string encryptedTicket = FormsAuthentication.Encrypt(authTicket);
código de Visual Basic .NET
Dim encryptedTicket As String = FormsAuthentication.Encrypt(authTicket)

Referencias

Para obtener información acerca de autenticación ASP.NET y formularios, visite los siguientes sitios Web de Microsoft:
Autenticación en ASP.NET: guía de seguridad de .NET
http://msdn2.microsoft.com/en-us/library/ms978378.aspx
Proveedor de autenticación de formularios
http://msdn2.microsoft.com/en-us/library/9wff0kyh(vs.71).aspx
Para obtener información adicional sobre cómo utilizar SSL para proteger la autenticación mediante formularios, haga clic en los números de artículo siguientes para verlos en Microsoft Knowledge Base:
306590INFORMACIÓN: Información general sobre seguridad ASP.NET
315588Cómo: Proteger una aplicación de ASP.NET con certificados de cliente
313116PRB: Forms autenticación solicitudes no se dirigen a loginUrl página
324069Cómo: Configurar un servicio HTTPS en IIS
326340AD - Cómo: autenticación en Active Directory mediante autenticación por formularios y Visual Basic .NET
301240SQL - Cómo: implementar la autenticación basada en formularios en su aplicación ASP.NET mediante C# .NET
308157SQL - Cómo: implementar la autenticación basada en formularios en su aplicación de ASP.NET mediante Visual Basic .NET
311495Cómo: Implementar basada en seguridad con autenticación basada en formularios en un ASP.NET aplicación mediante Visual C# .NET
306238Cómo: Implementar Role-Based Security con autenticación basada en formularios en su aplicación ASP.NET mediante Visual Basic .NET
312906Cómo: Crear claves utilizando Visual C# .NET para uso en autenticación mediante formularios
313091Cómo: Crear claves utilizando Visual Basic .NET para utilizar en formularios de autenticación

Propiedades

Id. de artículo: 813829 - Última revisión: jueves, 19 de abril de 2007 - Versión: 2.5
La información de este artículo se refiere a:
  • Microsoft ASP.NET 1.1
Palabras clave: 
kbmt kbcookie kbwebforms kbauthentication kbsecurity kbconfig kbinfo KB813829 KbMtes
Traducción automática
IMPORTANTE: Este artículo ha sido traducido por un software de traducción automática de Microsoft (http://support.microsoft.com/gp/mtdetails) en lugar de un traductor humano. Microsoft le ofrece artículos traducidos por un traductor humano y artículos traducidos automáticamente para que tenga acceso en su propio idioma a todos los artículos de nuestra base de conocimientos (Knowledge Base). Sin embargo, los artículos traducidos automáticamente pueden contener errores en el vocabulario, la sintaxis o la gramática, como los que un extranjero podría cometer al hablar el idioma. Microsoft no se hace responsable de cualquier imprecisión, error o daño ocasionado por una mala traducción del contenido o como consecuencia de su utilización por nuestros clientes. Microsoft suele actualizar el software de traducción frecuentemente.
Haga clic aquí para ver el artículo original (en inglés): 813829

Enviar comentarios