Share via


Configuración de los requisitos de complejidad de contraseñas de Azure Active Directory B2C

Antes de comenzar, use el selector Elección de un tipo de directiva para elegir el tipo de directiva que va a configurar. Azure Active Directory B2C ofrece dos métodos para definir el modo en que los usuarios interactúan con las aplicaciones: por medio de flujos de usuario predefinidos o de directivas personalizadas totalmente configurables. Los pasos necesarios en este artículo son diferentes para cada método.

Azure Active Directory B2C (Azure AD B2C) admite el cambio de los requisitos de complejidad de las contraseñas proporcionadas por un usuario final al crear una cuenta. De forma predeterminada, Azure AD B2C utiliza contraseñas seguras. Azure AD B2C también admite opciones de configuración para controlar la complejidad de las contraseñas que los clientes pueden usar.

Requisitos previos

Aplicación de las reglas de contraseña

Al realizar el registro o el restablecimiento de contraseña, un usuario final tiene que proporcionar una contraseña que cumpla las reglas de complejidad. Las reglas de complejidad de contraseña se aplican por flujo de usuario. Es posible tener un flujo de usuario que exija un pin de cuatro dígitos durante el registro mientras otro flujo de usuario requiere una cadena de ocho caracteres al realizar el registro. Por ejemplo, puede utilizar un flujo de usuario con complejidad de contraseña diferente para adultos y para niños.

La complejidad de la contraseña nunca se aplica durante el inicio de sesión. Nunca se pide a los usuarios durante el inicio de sesión que cambien su contraseña porque no cumple los requisitos de complejidad actuales.

Puede configurar la complejidad de las contraseña en los siguientes tipos de flujos de usuario:

  • Flujo de usuario de registro o de inicio de sesión
  • Flujo de usuario de restablecimiento de contraseña

Si usa directivas personalizadas, puede configurar la complejidad de la contraseña en una directiva personalizada.

Configurar la complejidad de la contraseña

  1. Inicie sesión en Azure Portal.
  2. Si tiene acceso a varios inquilinos, seleccione el icono Configuración en el menú superior para cambiar a su inquilino de Azure AD B2C desde el menú Directorios y suscripciones.
  3. En Azure Portal, busque y seleccione Azure AD B2C.
  4. Seleccione Flujos de usuario.
  5. Seleccione un flujo de usuario y haga clic en Propiedades.
  6. En Complejidad de la contraseña, cambie la complejidad de contraseña de este flujo de usuario a Simple, Segura o Personalizada.

Gráfico de comparación

Complejidad Descripción
Simple Una contraseña que tenga al menos de 8 a 64 caracteres.
Alta Una contraseña que tenga al menos de 8 a 64 caracteres. Requiere 3 de 4 de minúsculas, mayúsculas, números o símbolos.
Personalizado Esta opción proporciona el máximo control sobre las reglas de complejidad de contraseña. Permite configurar una longitud personalizada. También permite aceptar contraseñas compuestas solo por números (PIN).

opciones personalizadas

Juego de caracteres

Permite aceptar solo dígitos (PIN) o el juego completo de caracteres.

  • Solo números permite solamente dígitos (0-9) al escribir una contraseña.
  • Todos permite cualquier letra, número o símbolo.

Length

Permite controlar los requisitos de longitud de la contraseña.

  • Longitud mínima tiene que ser 4 como mínimo.
  • Longitud máxima tiene que ser mayor o igual que la longitud mínima y como máximo puede ser de 256 caracteres.

Clase de caracteres

Permite controlar los distintos tipos de caracteres utilizados en la contraseña.

  • 2 de 4: carácter en minúscula, carácter en mayúscula, número (0-9), símbolo garantiza que la contraseña contiene al menos dos tipos de caracteres. Por ejemplo, un número y un carácter en minúscula.

  • 3 de 4: carácter en minúscula, carácter en mayúscula, número (0-9), símbolo garantiza que la contraseña contiene al menos tres tipos de caracteres. Por ejemplo, un número, un carácter en minúscula y un carácter en mayúscula.

  • 4 de 4: carácter en minúscula, carácter en mayúscula, número (0-9), símbolo garantiza que la contraseña contiene al menos todos tipos de caracteres.

    Nota:

    Solicitar una contraseña de tipo 4 de 4 puede dar lugar a la frustración del usuario final. Algunos estudios han demostrado que este requisito no mejorar la entropía de contraseña. Consulte las directrices para contraseñas del NIST

Validación de predicados de contraseña

Para configurar la complejidad de la contraseña, reemplace los tipos de notificaciones de newPassword y reenterPassword por una referencia a las validaciones de predicado. El elemento PredicateValidations agrupa un conjunto de predicados para formar una validación de entrada de usuario que se puede aplicar a un tipo de notificación. Abra el archivo de extensiones de la directiva. Por ejemplo, SocialAndLocalAccounts/TrustFrameworkExtensions.xml.

  1. Busque el elemento BuildingBlocks. Si el elemento no existe, agréguelo.

  2. Busque el elemento ClaimsSchema. Si el elemento no existe, agréguelo.

  3. Agregue las notificaciones newPassword y reenterPassword al elemento ClaimsSchema.

    <!-- 
    <BuildingBlocks>
      <ClaimsSchema> -->
        <ClaimType Id="newPassword">
          <PredicateValidationReference Id="CustomPassword" />
        </ClaimType>
        <ClaimType Id="reenterPassword">
          <PredicateValidationReference Id="CustomPassword" />
        </ClaimType>
      <!-- 
      </ClaimsSchema>
    </BuildingBlocks>-->
    
  4. Predicates define una validación básica para comprobar el valor de un tipo de notificación y devuelve true o false. La validación se realiza mediante un elemento de método especificado y un conjunto de parámetros pertinentes para el método. Agregue los siguientes predicados al elemento BuildingBlocks justo después del cierre del elemento </ClaimsSchema>:

    <!-- 
    <BuildingBlocks>-->
      <Predicates>
        <Predicate Id="LengthRange" Method="IsLengthRange">
          <UserHelpText>The password must be between 6 and 64 characters.</UserHelpText>
          <Parameters>
            <Parameter Id="Minimum">6</Parameter>
            <Parameter Id="Maximum">64</Parameter>
          </Parameters>
        </Predicate>
        <Predicate Id="Lowercase" Method="IncludesCharacters">
          <UserHelpText>a lowercase letter</UserHelpText>
          <Parameters>
            <Parameter Id="CharacterSet">a-z</Parameter>
          </Parameters>
        </Predicate>
        <Predicate Id="Uppercase" Method="IncludesCharacters">
          <UserHelpText>an uppercase letter</UserHelpText>
          <Parameters>
            <Parameter Id="CharacterSet">A-Z</Parameter>
          </Parameters>
        </Predicate>
        <Predicate Id="Number" Method="IncludesCharacters">
          <UserHelpText>a digit</UserHelpText>
          <Parameters>
            <Parameter Id="CharacterSet">0-9</Parameter>
          </Parameters>
        </Predicate>
        <Predicate Id="Symbol" Method="IncludesCharacters">
          <UserHelpText>a symbol</UserHelpText>
          <Parameters>
            <Parameter Id="CharacterSet">@#$%^&amp;*\-_+=[]{}|\\:',.?/`~"();!</Parameter>
          </Parameters>
        </Predicate>
      </Predicates>
    <!-- 
    </BuildingBlocks>-->
    
  5. Agregue las siguientes validaciones de predicado al elemento BuildingBlocks justo después del cierre del elemento </Predicates>:

    <!-- 
    <BuildingBlocks>-->
      <PredicateValidations>
        <PredicateValidation Id="CustomPassword">
          <PredicateGroups>
            <PredicateGroup Id="LengthGroup">
              <PredicateReferences MatchAtLeast="1">
                <PredicateReference Id="LengthRange" />
              </PredicateReferences>
            </PredicateGroup>
            <PredicateGroup Id="CharacterClasses">
              <UserHelpText>The password must have at least 3 of the following:</UserHelpText>
              <PredicateReferences MatchAtLeast="3">
                <PredicateReference Id="Lowercase" />
                <PredicateReference Id="Uppercase" />
                <PredicateReference Id="Number" />
                <PredicateReference Id="Symbol" />
              </PredicateReferences>
            </PredicateGroup>
          </PredicateGroups>
        </PredicateValidation>
      </PredicateValidations>
    <!-- 
    </BuildingBlocks>-->
    

Deshabilitar una contraseña segura

Los siguientes perfiles técnicos son perfiles técnicos de Active Directory, que leen y escriben datos en Microsoft Entra ID. Reemplace estos perfiles técnicos en el archivo de extensión. Use PersistedClaims para deshabilitar la directiva de contraseñas seguras. Busque el elemento ClaimsProviders. Agregue los siguientes proveedores de notificaciones tal como se indica a continuación:

<!-- 
<ClaimsProviders>-->
  <ClaimsProvider>
    <DisplayName>Azure Active Directory</DisplayName>
    <TechnicalProfiles>
      <TechnicalProfile Id="AAD-UserWriteUsingLogonEmail">
        <PersistedClaims>
          <PersistedClaim ClaimTypeReferenceId="passwordPolicies" DefaultValue="DisablePasswordExpiration, DisableStrongPassword"/>
        </PersistedClaims>
      </TechnicalProfile>
      <TechnicalProfile Id="AAD-UserWritePasswordUsingObjectId">
        <PersistedClaims>
          <PersistedClaim ClaimTypeReferenceId="passwordPolicies" DefaultValue="DisablePasswordExpiration, DisableStrongPassword"/>
        </PersistedClaims>
      </TechnicalProfile>
    </TechnicalProfiles>
  </ClaimsProvider>
<!-- 
</ClaimsProviders>-->

Si usa la directiva de inicio de sesión mediante nombre de usuario, actualice los perfiles técnicos AAD-UserWriteUsingLogonEmail, AAD-UserWritePasswordUsingObjectId y LocalAccountWritePasswordUsingObjectId con la directiva DisableStrongPassword.

Guarde el archivo de directiva.

Prueba de la directiva

Carga de los archivos

  1. Inicie sesión en Azure Portal.
  2. Si tiene acceso a varios inquilinos, seleccione el icono Configuración en el menú superior para cambiar a su inquilino de Azure AD B2C desde el menú Directorios y suscripciones.
  3. Elija Todos los servicios en la esquina superior izquierda de Azure Portal, y busque y seleccione Azure AD B2C.
  4. Seleccione Marco de experiencia de identidad.
  5. En la página Directivas personalizadas, seleccione Cargar directiva.
  6. Seleccione Sobrescribir la directiva si existe, y busque y seleccione el archivo TrustFrameworkExtensions.xml.
  7. Seleccione Cargar.

Ejecución de la directiva

  1. Abra la directiva de registro o de inicio de sesión, como B2C_1A_signup_signin.
  2. En Aplicación, seleccione la aplicación que registró anteriormente. Para ver el token, URL de respuesta debe mostrar https://jwt.ms.
  3. Seleccione Ejecutar ahora.
  4. Seleccione Registrarse ahora, escriba una dirección de correo electrónico y escriba una contraseña nueva. Se presenta una guía sobre las restricciones de las contraseñas. Termine de especificar la información de usuario y, a continuación, seleccione Crear. Debería ver el contenido del token que se devolvió.

Pasos siguientes