Notes
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
Important
À compter du 1er mai 2025, Azure AD B2C ne sera plus disponible pour les nouveaux clients. Pour plus d’informations, consultez notre FAQ.
Remarque
Dans Active Directory B2C, les stratégies personnalisées sont principalement conçues pour gérer des scénarios complexes. Pour la plupart des scénarios, nous vous recommandons de recourir à des flux d’utilisateurs intégrés. Si vous ne l’avez pas fait, découvrez le Pack de démarrage de stratégie personnalisée dans Prise en main des stratégies personnalisées dans Active Directory B2C.
Les éléments Predicates et PredicateValidations vous permettent d’effectuer un processus de validation pour vous assurer que seules les données correctement formées sont entrées dans votre locataire Azure Active Directory B2C (Azure AD B2C).
Le schéma suivant montre la relation entre les éléments :
Prédicats
L’élément Predicate définit une validation de base pour vérifier la valeur d’un type de revendication et renvoie true
ou false
. La validation est effectuée à l’aide d’un élément Method spécifié et d’un ensemble d’éléments Parameter pertinents pour la méthode. Par exemple, un prédicat peut vérifier si la longueur d’une valeur de revendication de chaîne se situe dans la plage des paramètres minimum et maximum spécifiés, ou si une valeur de revendication de chaîne contient un jeu de caractères. L’élément UserHelpText fournit un message d’erreur aux utilisateurs en cas d’échec de la vérification. La valeur de l’élément UserHelpText peut être localisée à l’aide de la personnalisation de la langue.
L’élément Predicates doit apparaître directement après l’élément ClaimsSchema dans l’élément BuildingBlocks .
L’élément Predicates contient l’élément suivant :
Élément | Occurrences | Descriptif |
---|---|---|
Prédicat | 1 :n | Liste de prédicats. |
L’élément Predicate contient les attributs suivants :
Caractéristique | Obligatoire | Descriptif |
---|---|---|
Id | Oui | Identificateur utilisé pour le prédicat. D’autres éléments peuvent utiliser cet identificateur dans la stratégie. |
Méthode | Oui | Type de méthode à utiliser pour la validation. Valeurs possibles : IsLengthRange, MatchesRegex, IncludesCharacters ou IsDateRange. |
Texte d’aide | Non | Message d’erreur pour les utilisateurs en cas d’échec de la vérification. Cette chaîne peut être localisée à l’aide de la personnalisation de la langue |
L’élément Predicate contient les éléments suivants :
Élément | Occurrences | Descriptif |
---|---|---|
UserHelpText | 0:1 | (Obsolète) Message d’erreur pour les utilisateurs en cas d’échec de la vérification. |
Paramètres | Un-à-un (1:1) | Paramètres du type de méthode de validation de la chaîne. |
L’élément Parameters contient les éléments suivants :
Élément | Occurrences | Descriptif |
---|---|---|
Paramètre | 1 :n | Paramètres du type de méthode de validation de la chaîne. |
L’élément Parameter contient les attributs suivants :
Élément | Occurrences | Descriptif |
---|---|---|
Id | Un-à-un (1:1) | Identificateur du paramètre. |
Méthodes de prédicat
IsLengthRange
La méthode IsLengthRange vérifie si la longueur d’une valeur de revendication de chaîne se situe dans la plage des paramètres minimum et maximum spécifiés. Découvrez la démo en direct de cette méthode de prédicat. L’élément de prédicat prend en charge les paramètres suivants :
Paramètre | Obligatoire | Descriptif |
---|---|---|
Maximale | Oui | Nombre maximal de caractères pouvant être saisis. |
Minimum | Oui | Nombre minimum de caractères à saisir. |
L’exemple suivant montre une méthode IsLengthRange avec les paramètres Minimum
et Maximum
qui spécifient la plage de longueur de la chaîne :
<Predicate Id="IsLengthBetween8And64" Method="IsLengthRange" HelpText="The password must be between 8 and 64 characters.">
<Parameters>
<Parameter Id="Minimum">8</Parameter>
<Parameter Id="Maximum">64</Parameter>
</Parameters>
</Predicate>
MatchsRegex
La méthode MatchesRegex vérifie si une valeur de revendication de chaîne correspond à une expression régulière. Découvrez la démo en direct de cette méthode de prédicat. L’élément de prédicat prend en charge les paramètres suivants :
Paramètre | Obligatoire | Descriptif |
---|---|---|
ExpressionRégulière | Oui | Modèle d’expression régulière à correspondre. |
L’exemple suivant montre une MatchesRegex
méthode avec le paramètre RegularExpression
qui spécifie une expression régulière :
<Predicate Id="PIN" Method="MatchesRegex" HelpText="The password must be numbers only.">
<Parameters>
<Parameter Id="RegularExpression">^[0-9]+$</Parameter>
</Parameters>
</Predicate>
InclutPersonnages
La méthode IncludesCharacters vérifie si une valeur de revendication de chaîne contient un jeu de caractères. Découvrez la démo en direct de cette méthode de prédicat. L’élément de prédicat prend en charge les paramètres suivants :
Paramètre | Obligatoire | Descriptif |
---|---|---|
Jeu de caractères | Oui | Ensemble de caractères pouvant être saisis. Par exemple, des caractères a-z minuscules , des caractères A-Z majuscules , des 0-9 chiffres ou une liste de symboles, tels que @#$%^&*\-_+=[]{}|\\:',?/~"();! . |
L’exemple suivant montre une IncludesCharacters
méthode avec le paramètre CharacterSet
qui spécifie l’ensemble de caractères :
<Predicate Id="Lowercase" Method="IncludesCharacters" HelpText="a lowercase letter">
<Parameters>
<Parameter Id="CharacterSet">a-z</Parameter>
</Parameters>
</Predicate>
IsDateRange
La méthode IsDateRange vérifie si la valeur d’une revendication de date se situe entre une plage de paramètres minimum et maximum spécifiés. Découvrez la démo en direct de cette méthode de prédicat. L’élément de prédicat prend en charge les paramètres suivants :
Paramètre | Obligatoire | Descriptif |
---|---|---|
Maximale | Oui | La plus grande date possible pouvant être saisie. Le format de la date suit yyyy-mm-dd la convention, ou Today . |
Minimum | Oui | La plus petite date possible qui peut être saisie. Le format de la date suit yyyy-mm-dd la convention, ou Today . |
L’exemple suivant montre une IsDateRange
méthode avec les paramètres Minimum
et Maximum
qui spécifie la plage de yyyy-mm-dd
dates au format et Today
.
<Predicate Id="DateRange" Method="IsDateRange" HelpText="The date must be between 1970-01-01 and today.">
<Parameters>
<Parameter Id="Minimum">1970-01-01</Parameter>
<Parameter Id="Maximum">Today</Parameter>
</Parameters>
</Predicate>
PredicateValidations
Alors que les prédicats définissent la validation à vérifier par rapport à un type de revendication, les PredicateValidations regroupent un ensemble de prédicats pour former une validation d’entrée utilisateur qui peut être appliquée à un type de revendication. Chaque élément PredicateValidation contient un ensemble d’éléments PredicateGroup qui contiennent un ensemble d’éléments PredicateReference qui pointe vers un prédicat. Pour réussir la validation, la valeur de la revendication doit réussir tous les tests de n’importe quel prédicat sous l’ensemble du PredicateGroup avec leur ensemble d’éléments PredicateReference .
L’élément PredicateValidations doit apparaître directement après l’élément Predicates dans l’élément BuildingBlocks .
<PredicateValidations>
<PredicateValidation Id="">
<PredicateGroups>
<PredicateGroup Id="">
<UserHelpText></UserHelpText>
<PredicateReferences MatchAtLeast="">
<PredicateReference Id="" />
...
</PredicateReferences>
</PredicateGroup>
...
</PredicateGroups>
</PredicateValidation>
...
</PredicateValidations>
L’élément PredicateValidations contient l’élément suivant :
Élément | Occurrences | Descriptif |
---|---|---|
PredicateValidation | 1 :n | Une liste de validation de prédicat. |
L’élément PredicateValidation contient l’attribut suivant :
Caractéristique | Obligatoire | Descriptif |
---|---|---|
Id | Oui | Identificateur utilisé pour la validation du prédicat. L’élément ClaimType peut utiliser cet identificateur dans la stratégie. |
L’élément PredicateValidation contient l’élément suivant :
Élément | Occurrences | Descriptif |
---|---|---|
PrédicatGroupes | 1 :n | Liste de groupes de prédicats. |
L’élément PredicateGroups contient l’élément suivant :
Élément | Occurrences | Descriptif |
---|---|---|
PredicateGroup | 1 :n | Liste de prédicats. |
L’élément PredicateGroup contient l’attribut suivant :
Caractéristique | Obligatoire | Descriptif |
---|---|---|
Id | Oui | Identificateur utilisé pour le groupe de prédicats. |
L’élément PredicateGroup contient les éléments suivants :
Élément | Occurrences | Descriptif |
---|---|---|
UserHelpText | 0:1 | Une description du prédicat qui peut être utile aux utilisateurs pour savoir quelle valeur ils doivent taper. |
PrédicatRéférences | 1 :n | Une liste de références de prédicat. |
L’élément PredicateReferences contient les attributs suivants :
Caractéristique | Obligatoire | Descriptif |
---|---|---|
MatchAtLeast | Non | Spécifie que la valeur doit correspondre à au moins autant de définitions de prédicat pour que l’entrée soit acceptée. Si elle n’est pas spécifiée, la valeur doit correspondre à toutes les définitions de prédicat. |
L’élément PredicateReferences contient les éléments suivants :
Élément | Occurrences | Descriptif |
---|---|---|
PrédicatRéférence | 1 :n | Référence à un prédicat. |
L’élément PredicateReference contient les attributs suivants :
Caractéristique | Obligatoire | Descriptif |
---|---|---|
Id | Oui | Identificateur utilisé pour la validation du prédicat. |
Configurer la complexité des mots de passe
Avec Predicates et PredicateValidationsInput, vous pouvez contrôler les exigences de complexité des mots de passe fournis par un utilisateur lors de 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 pour contrôler la complexité des mots de passe que les clients peuvent utiliser. Vous pouvez définir la complexité du mot de passe à l’aide des éléments de prédicat suivants :
-
IsLengthBetween8And64 à l’aide de la
IsLengthRange
méthode, vérifie que le mot de passe doit comporter entre 8 et 64 caractères. -
En minuscules à l’aide de la
IncludesCharacters
méthode, vérifie que le mot de passe contient une lettre minuscule. -
Majuscule à l’aide de la
IncludesCharacters
méthode, vérifie que le mot de passe contient une lettre majuscule. -
Le nombre utilisant la
IncludesCharacters
méthode vérifie que le mot de passe contient un chiffre. -
Symbol à l’aide de cette
IncludesCharacters
méthode, vérifie que le mot de passe contient l’un des nombreux caractères symboles. -
Le code PIN utilisant la
MatchesRegex
méthode vérifie que le mot de passe ne contient que des chiffres. -
AllowedAADCharacters utilisant la
MatchesRegex
méthode, vérifie que le mot de passe uniquement le caractère non valide a été fourni. -
DisallowedWhitespace à l’aide de la
MatchesRegex
méthode vérifie que le mot de passe ne commence pas ou ne se termine pas par un caractère d’espace.
<Predicates>
<Predicate Id="IsLengthBetween8And64" Method="IsLengthRange" HelpText="The password must be between 8 and 64 characters.">
<Parameters>
<Parameter Id="Minimum">8</Parameter>
<Parameter Id="Maximum">64</Parameter>
</Parameters>
</Predicate>
<Predicate Id="Lowercase" Method="IncludesCharacters" HelpText="a lowercase letter">
<Parameters>
<Parameter Id="CharacterSet">a-z</Parameter>
</Parameters>
</Predicate>
<Predicate Id="Uppercase" Method="IncludesCharacters" HelpText="an uppercase letter">
<Parameters>
<Parameter Id="CharacterSet">A-Z</Parameter>
</Parameters>
</Predicate>
<Predicate Id="Number" Method="IncludesCharacters" HelpText="a digit">
<Parameters>
<Parameter Id="CharacterSet">0-9</Parameter>
</Parameters>
</Predicate>
<Predicate Id="Symbol" Method="IncludesCharacters" HelpText="a symbol">
<Parameters>
<Parameter Id="CharacterSet">@#$%^&*\-_+=[]{}|\\:',.?/`~"();!</Parameter>
</Parameters>
</Predicate>
<Predicate Id="PIN" Method="MatchesRegex" HelpText="The password must be numbers only.">
<Parameters>
<Parameter Id="RegularExpression">^[0-9]+$</Parameter>
</Parameters>
</Predicate>
<Predicate Id="AllowedAADCharacters" Method="MatchesRegex" HelpText="An invalid character was provided.">
<Parameters>
<Parameter Id="RegularExpression">(^([0-9A-Za-z\d@#$%^&*\-_+=[\]{}|\\:',?/`~"();! ]|(\.(?!@)))+$)|(^$)</Parameter>
</Parameters>
</Predicate>
<Predicate Id="DisallowedWhitespace" Method="MatchesRegex" HelpText="The password must not begin or end with a whitespace character.">
<Parameters>
<Parameter Id="RegularExpression">(^\S.*\S$)|(^\S+$)|(^$)</Parameter>
</Parameters>
</Predicate>
Une fois que vous avez défini les validations de base, vous pouvez les combiner et créer un ensemble de stratégies de mot de passe que vous pouvez utiliser dans votre stratégie :
- SimplePassword valide les attributs DisallowedWhitespace, AllowedAADCharacters et IsLengthBetween8And64
-
StrongPassword valide les espaces non autorisés, AllowedAADCharacters, IsLengthBetween8And64. Le dernier groupe
CharacterClasses
exécute un ensemble supplémentaire de prédicats avecMatchAtLeast
la valeur 3. Le mot de passe de l’utilisateur doit comporter entre 8 et 16 caractères, dont trois des caractères suivants : minuscules, majuscules, chiffres ou symboles. - CustomPassword valide uniquement les espaces interdits, les assistants AADCharacters. Ainsi, l’utilisateur peut fournir n’importe quel mot de passe de n’importe quelle longueur, tant que les caractères sont valides.
<PredicateValidations>
<PredicateValidation Id="SimplePassword">
<PredicateGroups>
<PredicateGroup Id="DisallowedWhitespaceGroup">
<PredicateReferences>
<PredicateReference Id="DisallowedWhitespace" />
</PredicateReferences>
</PredicateGroup>
<PredicateGroup Id="AllowedAADCharactersGroup">
<PredicateReferences>
<PredicateReference Id="AllowedAADCharacters" />
</PredicateReferences>
</PredicateGroup>
<PredicateGroup Id="LengthGroup">
<PredicateReferences>
<PredicateReference Id="IsLengthBetween8And64" />
</PredicateReferences>
</PredicateGroup>
</PredicateGroups>
</PredicateValidation>
<PredicateValidation Id="StrongPassword">
<PredicateGroups>
<PredicateGroup Id="DisallowedWhitespaceGroup">
<PredicateReferences>
<PredicateReference Id="DisallowedWhitespace" />
</PredicateReferences>
</PredicateGroup>
<PredicateGroup Id="AllowedAADCharactersGroup">
<PredicateReferences>
<PredicateReference Id="AllowedAADCharacters" />
</PredicateReferences>
</PredicateGroup>
<PredicateGroup Id="LengthGroup">
<PredicateReferences>
<PredicateReference Id="IsLengthBetween8And64" />
</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>
<PredicateValidation Id="CustomPassword">
<PredicateGroups>
<PredicateGroup Id="DisallowedWhitespaceGroup">
<PredicateReferences>
<PredicateReference Id="DisallowedWhitespace" />
</PredicateReferences>
</PredicateGroup>
<PredicateGroup Id="AllowedAADCharactersGroup">
<PredicateReferences>
<PredicateReference Id="AllowedAADCharacters" />
</PredicateReferences>
</PredicateGroup>
</PredicateGroups>
</PredicateValidation>
</PredicateValidations>
Dans votre type de revendication, ajoutez l’élément PredicateValidationReference et spécifiez l’identificateur comme l’une des validations de prédicat, telles que SimplePassword, StrongPassword ou CustomPassword.
<ClaimType Id="password">
<DisplayName>Password</DisplayName>
<DataType>string</DataType>
<AdminHelpText>Enter password</AdminHelpText>
<UserHelpText>Enter password</UserHelpText>
<UserInputType>Password</UserInputType>
<PredicateValidationReference Id="StrongPassword" />
</ClaimType>
L’exemple suivant montre comment les éléments sont organisés lorsqu’Azure AD B2C affiche le message d’erreur :
Configurer une plage de dates
Avec les éléments Predicates et PredicateValidations , vous pouvez contrôler les valeurs de date minimale et maximale de UserInputType à l’aide d’un DateTimeDropdown
. Pour ce faire, créez un prédicat avec la IsDateRange
méthode et fournissez les paramètres minimum et maximum.
<Predicates>
<Predicate Id="DateRange" Method="IsDateRange" HelpText="The date must be between 01-01-1980 and today.">
<Parameters>
<Parameter Id="Minimum">1980-01-01</Parameter>
<Parameter Id="Maximum">Today</Parameter>
</Parameters>
</Predicate>
</Predicates>
Ajoutez un PredicateValidation avec une référence au DateRange
prédicat.
<PredicateValidations>
<PredicateValidation Id="CustomDateRange">
<PredicateGroups>
<PredicateGroup Id="DateRangeGroup">
<PredicateReferences>
<PredicateReference Id="DateRange" />
</PredicateReferences>
</PredicateGroup>
</PredicateGroups>
</PredicateValidation>
</PredicateValidations>
Dans votre type de revendication, ajoutez l’élément PredicateValidationReference et spécifiez l’identificateur .CustomDateRange
<ClaimType Id="dateOfBirth">
<DisplayName>Date of Birth</DisplayName>
<DataType>date</DataType>
<AdminHelpText>The user's date of birth.</AdminHelpText>
<UserHelpText>Your date of birth.</UserHelpText>
<UserInputType>DateTimeDropdown</UserInputType>
<PredicateValidationReference Id="CustomDateRange" />
</ClaimType>
Étapes suivantes
- Découvrez comment configurer la complexité des mots de passe à l’aide de stratégies personnalisées dans Azure Active Directory B2C à l’aide de validations de prédicat.