Configurer les exigences de complexité pour les mots de passe dans Azure Active Directory B2C

Avant de commencer, utilisez le sélecteur Choisir un type de stratégie pour choisir le type de stratégie que vous configurez. Azure Active Directory B2C offre deux possibilités pour définir la façon dont les utilisateurs interagissent avec vos applications : via des flux utilisateurs prédéfinis ou via des stratégies personnalisées entièrement configurables. La procédure donnée dans cet article est différente pour chaque méthode.

Azure Active Directory B2C (Azure AD B2C) prend en charge la modification des exigences de complexité des mots de passe fournis par un utilisateur final à la création d’un compte. Par défaut, Azure AD B2C utilise des mots de passe forts. Azure AD B2C prend également en charge les options de configuration permettant de contrôler la complexité des mots de passe utilisables par les clients.

Prérequis

Application des règles de mot de passe

Lors de l’inscription ou de la réinitialisation de mot de passe, un utilisateur final doit fournir un mot de passe qui respecte les règles de complexité. Les règles de complexité du mot de passe s’appliquent flux d’utilisateur par flux d’utilisateur. Il est possible qu’un flux d’utilisateurs demande un code confidentiel à quatre chiffres et un autre une chaîne de huit caractères à l’inscription. Par exemple, vous pouvez utiliser un flux d’utilisateur avec différents niveaux de complexité du mot de passe pour les adultes et pour les enfants.

La complexité du mot de passe ne s’applique jamais lors de la connexion. Les utilisateurs ne sont jamais invités à modifier leur mot de passe parce qu’il ne répond pas à l’exigence de complexité actuelle.

Vous pouvez configurer la complexité des mots de passe dans les types de flux d’utilisateurs suivants :

  • Flux d’utilisateur d’inscription ou de connexion
  • Flux d’utilisateur de réinitialisation du mot de passe

Si vous utilisez des stratégies personnalisées, vous pouvez configurer la complexité des mots de passe dans une stratégie personnalisée.

Configurer la complexité du mot de passe

  1. Connectez-vous au portail Azure.
  2. Si vous avez accès à plusieurs tenants (locataires), sélectionnez l’icône Paramètres dans le menu supérieur pour basculer vers votre tenant Azure AD B2C à partir du menu Annuaires + abonnements.
  3. Dans la Portail Azure, recherchez et sélectionnez Azure AD B2C.
  4. Sélectionnez Flux d’utilisateurs.
  5. Sélectionnez un flux d’utilisateur, puis cliquez sur Propriétés.
  6. Sous Complexité du mot de passe, changez la complexité du mot de passe de ce flux d’utilisateur : Simple, Fort ou Personnalisé.

Tableau comparatif

Complexité Description
Simple Un mot de passe entre 8 et 64 caractères.
Remarque Un mot de passe entre 8 et 64 caractères. Trois de ces quatre types d’éléments : minuscules, majuscules, chiffres ou symboles.
Custom C’est l’option qui fournit le contrôle le plus poussé sur les règles de complexité du mot de passe. Elle permet de configurer une longueur personnalisée, et d’accepter les mots de passe composés exclusivement de chiffres (codes confidentiels).

Options personnalisées

Jeu de caractères

Permet d’accepter des chiffres uniquement (code confidentiel) ou la totalité du jeu de caractères.

  • Numbers only (Chiffres uniquement) autorise la saisie de mots de passe composés exclusivement de chiffres (0-9).
  • All (Tout) accepte toutes les lettres, tous les chiffres et tous les symboles.

Longueur

Permet de contrôler les critères de longueur du mot de passe.

  • Minimum Length (Longueur minimale) doit avoir au moins la valeur 4.
  • Maximum Length (Longueur maximale) doit avoir une valeur supérieure ou égale à la longueur minimale, au maximum 256 caractères.

Classes de caractères

Permet de contrôler les différents types de caractères utilisés dans le mot de passe.

  • 2 of 4: Lowercase character, Uppercase character, Number (0-9), Symbol (2 sur 4 : minuscule, majuscule, chiffre (0-9), symbole) garantit que le mot de passe contient au moins trois types de caractères, par exemple, un nombre et une minuscule.

  • 3 of 4: Lowercase character, Uppercase character, Number (0-9), Symbol (3 sur 4 : Minuscule, Majuscule, Chiffre (0-9), Symbole) garantit que le mot de passe contient au moins trois types de caractères. par exemple, un chiffre, une minuscule et une majuscule.

  • 4 of 4: Lowercase character, Uppercase character, Number (0-9), Symbol (4 sur 4 : minuscule, majuscule, chiffre (0-9), symbole) garantit que le mot de passe contient les quatre types de caractères.

    Notes

    La condition 4 sur 4 peut contrarier l’utilisateur final. Des études ont montré qu’elle n’améliore pas l’entropie du mot de passe. Consultez les Recommandations du NIST en matière de mots de passe.

Validation de prédicats de mot de passe

Pour configurer la complexité du mot de passe, remplacez les types de revendicationnewPassword et reenterPassword par une référence aux validations de prédicat. L’élément PredicateValidations regroupe un ensemble de prédicats pour former une validation d’entrée utilisateur qui peut être appliquée à un type de revendication. Ouvrez le fichier d’extensions de votre stratégie. Par exemple : SocialAndLocalAccounts/TrustFrameworkExtensions.xml.

  1. Recherchez l’élément BuildingBlocks. Si l’élément n’existe pas, ajoutez-le.

  2. Localisez l’élément ClaimsSchema. Si l’élément n’existe pas, ajoutez-le.

  3. Ajoutez les revendications newPassword et reenterPassword à l’élément ClaimsSchema.

    <!-- 
    <BuildingBlocks>
      <ClaimsSchema> -->
        <ClaimType Id="newPassword">
          <PredicateValidationReference Id="CustomPassword" />
        </ClaimType>
        <ClaimType Id="reenterPassword">
          <PredicateValidationReference Id="CustomPassword" />
        </ClaimType>
      <!-- 
      </ClaimsSchema>
    </BuildingBlocks>-->
    
  4. Predicates définit une validation de base pour vérifier la valeur d’un type de revendication et retourne true ou false. La validation est effectuée en utilisant un élément de méthode spécifié, et un ensemble de paramètres appropriés à la méthode. Ajoutez les prédicats suivants à l’élément BuildingBlocks, juste après la fermeture de l’élément </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. Ajoutez les validations de prédicat suivantes à l’élément BuildingBlocks, juste après la fermeture de l’élément </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>-->
    

Désactiver un mot de passe fort

Les profils techniques suivants sont des profils techniques Active Directory qui lisent et écrivent des données dans Microsoft Entra ID. Remplacez ces profils techniques dans le fichier d’extension. Utilisez PersistedClaims pour désactiver la stratégie de mot de passe fort. Recherchez l’élément ClaimsProviders. Ajoutez les fournisseurs de revendication suivants de cette façon :

<!-- 
<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 vous utilisez la stratégie de connexion basée sur le nom d’utilisateur, mettez à jour les profils techniques AAD-UserWriteUsingLogonEmail, AAD-UserWritePasswordUsingObjectId et LocalAccountWritePasswordUsingObjectId avec la stratégie DisableStrongPassword.

Enregistrez le fichier de stratégie.

Tester votre stratégie

Téléchargement des fichiers

  1. Connectez-vous au portail Azure.
  2. Si vous avez accès à plusieurs tenants (locataires), sélectionnez l’icône Paramètres dans le menu supérieur pour basculer vers votre tenant Azure AD B2C à partir du menu Annuaires + abonnements.
  3. Choisissez Tous les services dans le coin supérieur gauche du portail Azure, puis recherchez et sélectionnez Azure AD B2C.
  4. Sélectionnez Infrastructure d’expérience d’identité.
  5. Dans la page Stratégies personnalisées, sélectionnez Charger la stratégie.
  6. Sélectionnez Remplacer la stratégie si elle existe, puis recherchez et sélectionnez le fichier TrustFrameworkExtensions.xml.
  7. Sélectionnez Charger.

Exécuter la stratégie

  1. Ouvrez la stratégie d’inscription ou de connexion, par exemple B2C_1A_signup_signin.
  2. Pour Application, sélectionnez l’application que vous avez précédemment inscrite. Pour voir le jeton, l’URL de réponse doit indiquer https://jwt.ms.
  3. Sélectionnez Exécuter maintenant.
  4. Sélectionnez Inscrivez-vous maintenant, entrez une adresse e-mail et entrez un nouveau mot de passe. Des conseils sur les restrictions de mot de passe s’affichent. Finissez d’entrer les informations utilisateur, puis sélectionnez Créer. Vous devez voir le contenu du jeton qui a été retourné.

Étapes suivantes