Exportar (0) Imprimir
Expandir todo

Utilizar la autenticación de formularios con SQL Server en ASP.NET 2.0

Agosto de 2005

Publicado: 21 de Diciembre de 2005

patterns & practices Developer Center (en inglés)

J.D. Meier, Alex Mackman, Blaine Wastell, Prashant Bansode, Andy Wigley
Microsoft Corporation

Este artículo se aplica a:
ASP.NET versión 2.0
SQL Server 2000

Resumen: En este artículo se describe cómo se utiliza la autenticación de formularios con el proveedor de pertenencia a grupo de SQL Server. La autenticación de formularios con SQL Server se puede aplicar principalmente en aquellas situaciones en las que los usuarios de la aplicación no forman parte del dominio de Windows y, como consecuencia, no tienen cuentas en Active Directory. En este documento se explica cómo crear una página de inicio de sesión con el nuevo control Login de pertenencia a grupo, configurar una aplicación Web para que utilice la autenticación de formularios, crear la base de datos del almacén de usuario, conceder a la cuenta de la aplicación Web acceso a la base de datos, configurar los parámetros de pertenencia a grupo de ASP.NET y establecer las reglas de complejidad de las contraseñas.

En esta página

Objetivos Objetivos
Descripción general Descripción general
Resumen de los pasos Resumen de los pasos
Paso 1. Creación de una aplicación Web con página de inicio de sesión Paso 1. Creación de una aplicación Web con página de inicio de sesión
Paso 2. Configuración de la aplicación Web para la autenticación de formularios Paso 2. Configuración de la aplicación Web para la autenticación de formularios
Paso 3. Configuración de ASP.NET para la pertenencia Paso 3. Configuración de ASP.NET para la pertenencia
Paso 4. Comprobación de la autenticación de formularios Paso 4. Comprobación de la autenticación de formularios
Factores de implementación Factores de implementación
Factores de seguridad Factores de seguridad
Factores adicionales Factores adicionales
Recursos adicionales Recursos adicionales
Comentarios Comentarios
Soporte técnico Soporte técnico
Comunidad y grupos de noticias Comunidad y grupos de noticias
Colaboradores y revisores Colaboradores y revisores

Objetivos

  • Utilizar SqlMembershipProvider con la autenticación de formularios.

  • Configurar la base de datos de pertenencia a grupo de SQL Server.

  • Limitar la cookie de autenticación de formularios a conexiones HTTPS.

  • Utilizar la característica de pertenencia a grupo para exigir el cumplimiento de las reglas de complejidad de las contraseñas.

  • Conocer los factores clave de producción al utilizar la pertenencia a grupo y la autenticación de formularios.

  • Conocer los factores clave de seguridad al utilizar la pertenencia a grupo y la autenticación de formularios.

Descripción general

La versión 2.0 de ASP.NET introduce una característica de pertenencia a grupo que se puede utilizar con la autenticación de formularios. La característica de pertenencia a grupo proporciona una abstracción para el almacén de datos subyacentes que se utiliza para mantener credenciales de usuario, como los nombres de usuario y las contraseñas, y proporciona una API que permite validar fácilmente las credenciales de los usuarios y administrar la base de datos de usuario. La versión 2.0 de ASP.NET admite proveedores de SQL Server y Active Directory, pero también es posible crear servidores propios para almacenes personalizados.

En este documento se muestra cómo desarrollar un sitio Web simple que utilice la autenticación de formularios con el proveedor de pertenencia de SQL Server. Este proveedor utiliza una base de datos subyacente de SQL Server como almacén de usuario.

Resumen de los pasos

Para desarrollar una aplicación simple que utilice la autenticación de formularios con proveedor de pertenencia a SQL Server, realice los pasos siguientes:

  • Paso 1. Creación de una aplicación Web con página de inicio de sesión.

  • Paso 2. Configuración de la aplicación Web para la autenticación de formularios.

  • Paso 3. Configuración de ASP.NET para la pertenencia.

  • Paso 4. Comprobación de la autenticación de formularios.

Paso 1. Creación de una aplicación Web con página de inicio de sesión

En este paso se crea una aplicación Web simple con una página predeterminada y una página de inicio de sesión. La página de inicio de sesión permite a los usuarios existentes iniciar sesión y a los usuarios nuevos registrarse mediante la creación de cuentas nuevas.

Para crear una aplicación Web con página de inicio de sesión

  1. Inicie Visual Studio .NET y cree un sitio Web nuevo de ASP.NET llamado FormsAuthSQL.

  2. Utilice el Explorador de soluciones para agregar al sitio un formulario Web nuevo llamado Login.aspx.

  3. Agregue un control Login a Login.aspx.

    De forma predeterminada, este control muestra los campos de nombre de usuario y contraseña, y la casilla de verificación Recordármelo la próxima vez. Si el usuario activa esta casilla de verificación, se crea una cookie de autenticación constante y el explorador del usuario la almacena en el disco duro.

    Para impedir que un usuario malintencionado robe alguna cookie de autenticación del equipo del cliente, de forma general no debe crear cookies de autenticación constantes. Para deshabilitar esta característica, establezca la propiedad DisplayRememberMe del control Login como false.

    Tenga en cuenta que cuando el usuario hace clic en la opción de inicio de sesión en el control Login, éste valida automáticamente el usuario llamando al proveedor de pertenencia a grupo configurado, crea un vale de autenticación de formularios y redirige al usuario a la página solicitada originalmente. Ejecuta código similar al del ejemplo siguiente.

    if (Membership.ValidateUser(username, password))
    {
      // User has supplied valid credentials
    
      // In the following method call, the second Boolean parameter 
      // determines whether a persistent authentication cookie
      // is created.
    
      FormsAuthentication.RedirectFromLoginPage(username,
                                                rememberMeIsChecked);
    }
    
  4. Agregue un control CreateUserWizard debajo del control Login para que los usuarios nuevos puedan registrarse en el sitio y crear cuentas nuevas.

Paso 2. Configuración de la aplicación Web para la autenticación de formularios

En este paso se configura la aplicación ASP.NET para que utilice la autenticación de formularios.

Para configurar la aplicación Web para la autenticación de formularios

  • Utilice el Explorador de soluciones para agregar un archivo Web.config al proyecto.

  • Localice el elemento <authentication> y cambie el atributo mode a "Forms".

  • Agregue el siguiente elemento <forms> como secundario del elemento <authentication> y. a continuación, establezca los atributos name y timeout de la siguiente manera.

    <authentication mode="Forms">
      <forms
          name="SqlAuthCookie"       
          timeout="10" />
    </authentication>
    

    Si establece el atributo mode del elemento <authentication>, pero omite el elemento <forms>, para la configuración de <forms> se utilizan los valores predeterminados. Debe configurar sólo los atributos que necesite sobrescribir. Aquí se muestra la configuración predeterminada de la autenticación de formularios tal como los define el archivo Machine.config.comments.

    <forms name=".ASPXAUTH" loginUrl="login.aspx" 
           defaultUrl="default.aspx" protection="All" timeout="30" path="/" 
           requireSSL="false" slidingExpiration="true"
           cookieless="UseDeviceProfile" domain=" 
           enableCrossAppRedirects="false">
      <credentials passwordFormat="SHA1" />
    </forms>
    
  • Agregue el siguiente elemento <authorization> en el elemento <authentication> del archivo Web.config. Esto permite que todos los usuarios autenticados tengan acceso a su sitio Web.

    <authorization> 
      <deny users="?" />
      <allow users="*" />
    </authorization>
    

    La configuración anterior sólo permite tener acceso a la aplicación a los usuarios autenticados. El signo "?" indica usuarios no autenticados, mientras que "*" indica todos los usuarios. Al denegar a los usuarios no autenticados, todas las solicitudes que realizan estos usuarios se redirigen a la página de inicio de sesión. El atributo loginUrl del elemento <forms> determina el nombre de la página de inicio de sesión. La configuración predeterminada de este atributo del archivo Machine.config.comments es Login.aspx.

Paso 3. Configuración de ASP.NET para la pertenencia

En este paso se configura el proveedor de pertenencia a grupo de SQL Server mediante la realización de las acciones siguientes:

  • Crear una base de datos del almacén de usuario.

  • Conceder acceso a la base de datos a la cuenta de la aplicación Web.

  • Configurar los parámetros de pertenencia a grupo de ASP.NET.

Crear una base de datos del almacén de usuario

El proveedor de pertenencia a grupo de SQL Server almacena información de los usuarios en una base de datos de SQL Server. El almacén de usuario de SQL Server se puede crear escribiendo Aspnet_regsql.exe en la línea de comandos. Como alternativa, Aspnet_regsql.exe se puede utilizar en modo Asistente o la herramienta ASP.NET Web Site Configuration del menú Sitio Web de Visual Studio .NET 2005.

Para crear la base de datos del almacén de usuario

Utilice Aspnet_regsql.exe para crear la base de datos de pertenencia a grupo. En el símbolo del sistema de Visual Studio 2005, ejecute el comando siguiente.

aspnet_regsql -S (local) -E -A m

-S especifica el servidor, que es (local) en este ejemplo.

-E especifica que se utilice la autenticación de Windows para conectarse a SQL Server.

-A m especifica que se agregue sólo la característica de pertenencia a grupo. Para realizar una autenticación simple con un almacén de usuario de SQL Server, sólo se requiere la característica de pertenencia a un grupo

Para ver una lista completa de los comandos, ejecute Aspnet_regsql /?.

Resultados esperados

Si la base de datos Aspnetdb no existe, se crean dos archivos de base de datos:

  • Aspnetdb.mdf

  • Aspnetdb_log.LDF

Si no existen, las tablas siguientes se crean en la base de datos Aspnetdb:

  • aspnet_Applications

  • aspnet_Membership

  • aspnet_SchemaVersions

  • aspnet_Users

Conceder acceso a la base de datos a la cuenta de la aplicación Web

La cuenta de proceso de la aplicación Web requiere el acceso a la base de datos Aspnetdb. Si ejecuta la aplicación en Servicios de Microsoft Internet Information Server (IIS) 6.0 en Windows Server 2003, de forma predeterminada se utiliza la cuenta NT AUTHORITY\Servicio de red para ejecutar las aplicaciones Web.

Para conceder acceso a la base de datos

  1. Cree un inicio de sesión de SQL Server para NT AUTHORITY\Servicio de red.

  2. Conceda el acceso de inicio de sesión a la base de datos Aspnetdb creando un usuario de base de datos.

  3. Agregue el usuario a la función de base de datos aspnet_Membership_FullAccess.

Estos pasos se pueden realizar con el Administrador corporativo o se puede ejecutar la siguiente secuencia de comandos en el Analizador de consultas SQL

-- Create a SQL Server login for the Network Service account
sp_grantlogin 'NT AUTHORITY\Network Service'

-- Grant the login access to the membership database
USE aspnetdb
GO
sp_grantdbaccess 'NT AUTHORITY\Network Service', 'Network Service'

-- Add user to database role
USE aspnetdb
GO
sp_addrolemember 'aspnet_Membership_FullAccess', 'Network Service'

Configurar los parámetros de pertenencia a grupo de ASP.NET

En este paso se especifica la configuración del sitio Web.

Para configurar la configuración de pertenencia a grupo

  1. En el archivo Web.config, agregue una cadena de conexión similar a la siguiente que apunte a la base de datos de pertenencia a grupo.

    <connectionStrings>
      <add name="MyLocalSQLServer"
           connectionString="Initial Catalog=aspnetdb;data source=localhost;Integrated Security=SSPI;" />
    </connectionStrings>
    

    En este caso, el nombre que utilizará para esta conexión es MyLocalSQLServer. Establezca el atributo connectionString como la base de datos de pertenencia a grupo que creó anteriormente.

  2. Agregue un elemento <membership> después del elemento <authorization> tal y como se muestra en el ejemplo siguiente. Observe el uso del elemento <clear/>. Esto impide que se cargue el proveedor predeterminado y nunca se utilice.

    <membership defaultProvider="MySqlMembershipProvider" >
      <providers>
        <clear/>
        <add name="MySqlMembershipProvider"
             connectionStringName="MyLocalSQLServer"
             applicationName="MyAppName"
             type="System.Web.Security.SqlMembershipProvider, System.Web, 
    		 Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
      </providers>
    </membership>
    

    Asegúrese de que establece el atributo connectionStringName como el mismo nombre ("MyLocalSQLServer") que especificó anteriormente en la sección connectionStrings. Establezca también el atributo applicationName como un valor único que represente la aplicación. Los detalles de usuario se organizan por nombre de aplicación en la base de datos de pertenencia a grupo.

    Nota

    Debe definir el atributo defaultProvider del elemento <membership> para que apunte a la definición del proveedor. Los controles Login utilizan este atributo para determinar la propiedad que se utiliza de forma predeterminada. Sin embargo, estos controles también exponen una propiedad MembershipProvider que permite utilizar con los controles proveedores distintos de los predeterminados. Aunque es posible definir la propiedad MembershipProvider de los controles Login, es aconsejable definir el atributo defaultProvider.

Paso 4. Comprobación de la autenticación de formularios

En este paso se prueba la autenticación de formularios.

Adición de un controlador de eventos Page_Load

Agregue el código siguiente al controlador de eventos Page_Load de la página Default.aspx. Esta página sólo debe mostrarse a los usuarios autenticados. Para demostrar que es así, el código muestra la información obtenida del vale de autenticación de formularios que se emite para los usuarios autenticados.

protected void Page_Load(object sender, EventArgs e)
{
  Response.Write("Hello, " + Server.HtmlEncode(User.Identity.Name));

  FormsIdentity id = (FormsIdentity)User.Identity;
  FormsAuthenticationTicket ticket = id.Ticket;

  Response.Write("<p/>TicketName: " + ticket.Name );
  Response.Write("<br/>Cookie Path: " + ticket.CookiePath);
  Response.Write("<br/>Ticket Expiration: " +  
                  ticket.Expiration.ToString());
  Response.Write("<br/>Expired: " + ticket.Expired.ToString());
  Response.Write("<br/>Persistent: " + ticket.IsPersistent.ToString());
  Response.Write("<br/>IssueDate: " + ticket.IssueDate.ToString());
  Response.Write("<br/>UserData: " + ticket.UserData);
  Response.Write("<br/>Version: " + ticket.Version.ToString());
}

Creación de un usuario nuevo

En este paso se crea un usuario nuevo para probar la funcionalidad del inicio de sesión.

Para crear un usuario nuevo

  1. Vaya a la página Default.aspx de la aplicación.

    La configuración anterior del elemento <authorization> impide a los usuarios no autenticados obtener acceso a ninguna de las páginas de la aplicación y le redirige a la página Login.aspx.

  2. Cree un usuario nuevo con una contraseña segura. Las reglas predeterminadas que aplica el proveedor de pertenencia a grupo de SQL para la contraseña son las siguientes:

    • La contraseña debe tener una longitud de al menos siete caracteres.

    • La contraseña debe contener al menos un carácter alfanumérico.

  3. Inicie sesión con su cuenta de usuario nueva. Si todo se realiza correctamente, se le debería redirigir a la página Default.aspx que solicitó inicialmente y deberían aparecer detalles del vale de autenticación de formularios.

Factores de implementación

Si se utiliza la autenticación de formularios, hay que tener en cuenta los siguientes factores al implementar la aplicación:

  • Conexión a una base de datos remota

  • Conexión a una base de datos remota sin autenticación de Windows

Conexión a una base de datos remota

Si la base de datos está en un servidor remoto, debe utilizar la autenticación de Windows para conectarse. Mediante el uso de la autenticación de Windows se evita tanto el almacenamiento de credenciales en las cadenas de conexión como el paso de contraseñas al servidor de bases de datos a través de la red. Para utilizar la autenticación de Windows, normalmente se usa una cuenta de servicio de dominio personalizada para ejecutar la aplicación. A continuación, la identidad de esta cuenta se utiliza para realizan la autenticación en el servidor remoto.

Para autorizar la cuenta de dominio de una aplicación en la base de datos

Utilice los siguientes comandos de T-SQL para crear un inicio de sesión de SQL Server para la cuenta de dominio y concédale acceso a la base de datos de pertenencia a grupo.

-- Create a SQL Server login for your application's domain account
sp_grantlogin 'domain\webservername$'

-- Grant the login access to the membership database
USE aspnetdb
GO
sp_grantdbaccess 'domain\webservername$', 'Web Server Name'

-- Add user to database role
USE aspnetdb
GO
sp_addrolemember 'aspnet_Membership_FullAccess', 'domain\webservername$'

También debe cifrar la cadena de conexión del archivo Web.config para evitar revelar los nombres del servidor y de la base de datos. Para ello, utilice los proveedores de configuración protegida DPAPI o RSA. Si implementa la aplicación en una batería de servidores Web, utilice RSA, ya que las claves RSA se exportan e importan fácilmente entre servidores.

Para obtener más información, consulte How To: Encrypt Configuration Sections in ASP.NET 2.0 Using DPAPI (en inglés) y Cómo: Cifrar secciones de configuración en ASP.NET 2.0 mediante RSA.

Conexión a una base de datos remota sin autenticación de Windows

Cuando utiliza la autenticación de Windows para conectarse a SQL Server, utiliza la autenticación Kerberos o NTLM, en función de la configuración de los servidores y el dominio. Es posible que no pueda utilizar la autenticación de Windows si:

  • El cliente y servidor de base de datos están separados por un firewall que impide la autenticación Kerberos o la NTLM.

  • Los servidores de aplicaciones y base de datos se encuentran en dominios diferentes entre los que no hay confianza.

En ambas situaciones, puede utilizar cuentas locales duplicadas o autenticación SQL. En el caso de las cuentas locales duplicadas, se configuran dos cuentas en cada servidor con idénticos nombre de usuarios y contraseñas. Debe asegurarse de que las contraseñas son iguales.

Si utiliza la autenticación SQL, debe:

  • Administrar las credenciales usted mismo.

  • Proteger las credenciales de la cadena de conexión (por ejemplo, mediante el cifrado de la cadena de conexión del archivo Web.config).

  • Posiblemente, proteger las credenciales transmitidas a través de la red desde el servidor Web a la base de datos.

Para obtener más información, consulte How To: Connect to SQL Server Using SQL Authentication in ASP.NET 2.0 (en inglés).

Factores de seguridad

No proteger los vales de autenticación es una vulnerabilidad habitual que puede traducirse en la suplantación no autorizada de la identidad, el secuestro de sesión y la elevación de privilegios. Cuando utilice la autenticación de formularios, considere las medidas enumeradas a continuación, ya que le ayudarán a garantizar que el enfoque de la autenticación es seguro:

  • Limitar la cookie de autenticación a conexiones HTTPS. Para evitar la captura y alteración de las cookies de autenticación durante su paso por la red, asegúrese de utilizar Secure Sockets Layer o SSL (nivel de socket seguro) en todas las páginas que requieran acceso autenticado y de limitar los vales de autenticación de formularios en los canales SSL.

  • Crear una partición en el sitio para SSL. Esto permite evitar el uso de SSL en todo el sitio.

  • No mantener las cookies de autenticación de formularios. No mantenga cookies de autenticación de formularios, ya que se almacenan en el perfil del usuario del equipo cliente y se pueden robar si un atacante obtiene acceso físico al equipo del usuario.

  • Considerar la reducción de la duración de los vales. Considere la posibilidad de reducir la duración de la cookie para reducir la ventana de tiempo durante la cual un intruso puede utilizar una cookie capturada para obtener acceso a la aplicación con una identidad suplantada.

  • Considerar la posibilidad de utilizar una caducidad fija. En los escenarios en que no pueda utilizar SSL, considere la posibilidad de establecer slidingExpiration="false".

  • Aplicar directivas seguras de administración de usuarios. Utilice y aplique contraseñas seguras en todas las cuentas de usuario para garantizar que nadie pueda adivinar la contraseña de otra persona y para mitigar el riesgo que plantean los ataques de diccionarios.

  • Aplicar reglas de complejidad de contraseñas. Valide las contraseñas introducidas a través del control CreateUserWizard, para lo que debe establecer su propiedad PasswordRegularExpression como una expresión regular apropiada. Configure también el proveedor de pertenencia a grupo del servidor para que utilice la misma expresión regular.

  • Realizar una validación eficaz de los datos de todas las solicitudes. Realice una validación estricta de los datos, con el fin de minimizar las posibilidades de inyección SQL y secuencias de comandos entre sitios.

  • Utilizar nombres y rutas de acceso exclusivos para las cookies. Si se asegura de que los nombres y las rutas de acceso a las cookies son únicos, evita los posibles problemas que pueden surgir cuando se alojan varias aplicaciones en el mismo servidor.

  • Guardar las cookies de autenticación y de personalización en ubicaciones diferentes. Guarde las cookies de personalización, que contienen preferencias específicas del usuario e información no confidencial, en una ubicación diferente a la de las cookies de autenticación.

  • Utilizar direcciones URL absolutas para la exploración. Con esto se evitan los problemas potenciales que causa la redirección desde páginas HTTP a HTTPS.

Para obtener más informaciones acerca de estas consideraciones adicionales acerca de la seguridad, consulte Cómo: Proteger la autenticación de formularios en ASP.NET 2.0.

Factores adicionales

Además de las medidas anteriores, considere las medidas enumeradas a continuación para ofrecer protección adicional:

  • Complejidad de contraseñas

  • Bloqueo de cuenta

Complejidad de contraseñas

El proveedor de pertenencia que utilizan los controles CreateUserWizard y Login determina los requisitos de complejidad de contraseñas. Por ejemplo, de forma predeterminada, el proveedor de pertenencia a grupo de SQL requiere contraseñas de al menos siete caracteres de longitud y con un mínimo de un carácter alfanumérico.

Configuración de contraseñas seguras exigidas por el proveedor

Para configurar las reglas exactas de complejidad de contraseñas que exige SqlMembershipProvider, se pueden establecer los atributos adicionales siguientes:

  • passwordStrengthRegularExpression. El valor predeterminado es ".

  • minRequiredPasswordLength. El valor predeterminado es siete.

  • minRequiredNonalphanumericCharacters. El valor predeterminado es uno.

La configuración siguiente proporciona una expresión regular personalizada que limita las contraseñas que utiliza el proveedor de pertenencia a grupo.

<membership defaultProvider="MySqlMembershipProvider">
  <providers>
    <add name="MySqlMembershipProvider" 
         connectionStringName="MyLocalSQLServer" 
         applicationName="MyAppName"
         passwordStrengthRegularExpression=
                    "^(?=.*\d)(?=.*[a-z])(?=.*[A-Z]).{8,10}$" 
         type="System.Web.Security.SqlMembershipProvider, System.Web, 
		 Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"/>
  </providers>
</membership>

La expresión regular del fragmento anterior limita la contraseña a entre ocho y diez caracteres. También debe contener una combinación de mayúsculas, minúsculas y números, sin caracteres especiales. (.*\d) hace referencia a los dígitos, (.*[a-z]) hace referencia a los caracteres en minúscula, *[A-Z] hace referencia a los caracteres en mayúscula y {8,10} limita el intervalo para que esté entre 8 y 10 caracteres.

Para obtener más información acerca de las expresiones regulares, consulte How To: Use Regular Expressions to Constrain Input in ASP.NET (en inglés).

Tenga en cuenta que SqlMembershipProvider siempre evalúa primero la contraseña con los atributos minRequiredPasswordLength y minRequiredNonalphanumericCharacters. Si desea que la expresión regular tenga prioridad, debe establecer los otros dos atributos en valores menos estrictos; por ejemplo, una longitud mínima de 1 y cero caracteres no alfanuméricos.

La configuración siguiente utiliza los atributos minRequiredPasswordLength y minRequiredNonalphanumericCharacters para restringir la contraseña.

<membership defaultProvider="MySqlMembershipProvider">
  <providers>
    <add name="MySqlMembershipProvider" 
         connectionStringName="MyLocalSQLServer" 
         applicationName="MyAppName"
         minRequiredPasswordLength="8"
         minRequiredNonalphanumericCharacters="2"
         type="System.Web.Security.SqlMembershipProvider, System.Web, 
		 Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"/>
  </providers>
</membership>

Validación de contraseñas seguras

También puede utilizar una expresión regular con el control CreateUserWizard para aplicar reglas de complejidad de contraseñas. De este modo, aprovecha las ventajas de la validación tanto de cliente como de servidor.

Para validar una contraseña especificada a través del control CreateUserWizard, defina la propiedad PasswordRegularExpression como una expresión regular apropiada como la que se muestra a continuación. Sin embargo, tenga en cuenta que, después, debe configurar una expresión regular similar en el servidor con el proveedor de la pertenencia a grupo. No debe confiar en las comprobaciones realizadas en el cliente.

^(?=.*\d)(?=.*[a-z])(?=.*[A-Z]).{8,10}$

Bloqueo de cuenta

La directiva de bloqueo de cuentas se puede configurar. Para ello, utilice los dos atributos siguientes del proveedor:

  • maxInvalidPasswordAttempts. Define el número de intentos de introducción de contraseña erróneos o de intentos erróneos de respuesta a la contraseña que se permiten antes de bloquear la cuenta del usuario. Cuando el número de intentos sin éxito es igual al valor establecido en este atributo, la cuenta del usuario se bloquea. El valor predeterminado es cinco.

  • passwordAttemptWindow. Define la ventana de tiempo, en minutos, durante el que se han producido los intentos sin éxito de introducir la contraseña y las respuestas de contraseña incorrectas. El valor predeterminado es diez.

Con estos valores predeterminados, si hay cinco intentos de inicios de sesión fallidos en diez minutos, la cuenta se bloqueará.

Recursos adicionales

Comentarios

Si desea enviar comentarios puede utilizar la wikipedia (en inglés) o el correo electrónico:

Nos interesan especialmente sus comentarios sobre los aspectos siguientes:

  • Problemas técnicos relacionados con nuestras recomendaciones

  • Problemas de aprovechamiento y utilidad

Soporte técnico

Los servicios de soporte de Microsoft ofrecen el soporte técnico de los productos y tecnologías de Microsoft a los que se hace referencia en esta guía. Para obtener información sobre soporte, visite el sitio Web de soporte de Microsoft en http://msdn.microsoft.com/security/default.aspx?pull=/isapi/gosupport.asp?Target=/.

Comunidad y grupos de noticias

El soporte técnico de la comunidad se ofrece en los foros y grupos de noticias:

Para sacar el mayor partido de estos foros, busque el grupo de noticias correspondiente a su tecnología o problema. Por ejemplo, si tiene un problema con las características de seguridad de ASP.NET, debería utilizar el foro de seguridad de ASP.NET (ASP.NET Security).

Colaboradores y revisores

  • Colaboradores y revisores externos: Andy Eunson; Chris Ullman, Content Master; David Raphael, Foundstone Professional Services, Rudolph Araujo, Foundstone Professional Services; Manoranjan M. Paul

  • Colaboradores y revisores de PSS y Microsoft Consulting Services: Wade Mascia, Tom Christian, Adam Semel, Nobuyuki Akama, Microsoft Corporation

  • Colaboradores y revisores de Microsoft Product Group: Stefan Schackow, Vikas Malhotra, Microsoft Corporation

  • Colaboradores y revisores de MSDN: Kent Sharkey, Microsoft Corporation

  • Colaboradores y revisores de Microsoft IT: Eric Rachner, Shawn Veney (ACE Team), Microsoft Corporation

  • Equipo de pruebas: Larry Brader, Microsoft Corporation; Nadupalli Venkata Surya Sateesh, Sivanthapatham Shanmugasundaram, Sameer Tarey, Infosys Technologies Ltd.

  • Equipo de edición: Nelly Delgado, Microsoft Corporation; Sharon Smith, Tina Burden McGrayne, Linda Werner & Associates Inc.

  • Dirección de publicación: Sanjeev Garg, Satyam Computer Services

Mostrar:
© 2014 Microsoft