Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Von Bedeutung
Ab dem 1. Mai 2025 steht Azure AD B2C nicht mehr für neue Kunden zur Verfügung. Weitere Informationen finden Sie in unseren HÄUFIG gestellten Fragen.
Hinweis
In Azure Active Directory B2C sind benutzerdefinierte Richtlinien in erster Linie für komplexe Szenarien konzipiert. Für die meisten Szenarien empfehlen wir die Verwendung von integrierten Benutzerflows. Informieren Sie sich, sofern noch nicht geschehen, unter Tutorial: Erstellen von Benutzerflows und benutzerdefinierten Richtlinien in Azure Active Directory B2C über das Starter Pack für benutzerdefinierte Richtlinien.
Mit den PredicateValidations-Elementen können Sie einen Überprüfungsprozess durchführen, um sicherzustellen, dass nur ordnungsgemäß gebildete Daten in Ihren Azure Active Directory B2C (Azure AD B2C)-Mandanten eingegeben werden.
Das folgende Diagramm zeigt die Beziehung zwischen den Elementen:
Prädikate
Das Prädikatelement definiert eine grundlegende Überprüfung, um den Wert eines Anspruchstyps zu überprüfen und zurückzugeben true oder false. Die Überprüfung erfolgt mithilfe eines angegebenen Method-Elements und einer Reihe von Parameterelementen , die für die Methode relevant sind. Ein Prädikat kann z. B. überprüfen, ob sich die Länge eines Zeichenfolgenanspruchswerts innerhalb des Angegebenen Bereichs von minimalen und maximalen Parametern befindet oder ob ein Zeichenfolgenanspruchswert einen Zeichensatz enthält. Das UserHelpText-Element stellt eine Fehlermeldung für Benutzer bereit, wenn die Überprüfung fehlschlägt. Der Wert des UserHelpText-Elements kann mithilfe der Sprachanpassung lokalisiert werden.
Das Prädikatelement muss direkt nach dem ClaimsSchema-Element innerhalb des BuildingBlocks-Elements angezeigt werden.
Das Prädikats-Element enthält das folgende Element:
| Element | Vorkommen | BESCHREIBUNG |
|---|---|---|
| Prädikat | 1:n | Eine Liste mit Prädikaten. |
Das Prädikatelement enthält die folgenden Attribute:
| Merkmal | Erforderlich | BESCHREIBUNG |
|---|---|---|
| Id | Ja | Ein Bezeichner, der für das Prädikat verwendet wird. Andere Elemente können diesen Bezeichner in der Richtlinie verwenden. |
| Methode | Ja | Der für die Überprüfung zu verwendende Methodentyp. Mögliche Werte: IsLengthRange, MatchesRegex, IncludesCharacters oder IsDateRange. |
| HilfeText | Nein | Eine Fehlermeldung für Benutzer, wenn die Überprüfung fehlschlägt. Diese Zeichenfolge kann mithilfe der Sprachanpassung lokalisiert werden. |
Das Prädikatelement enthält die folgenden Elemente:
| Element | Vorkommen | BESCHREIBUNG |
|---|---|---|
| BenutzerHilfeText | 0:1 | (Veraltet) Eine Fehlermeldung für Benutzer, wenn die Überprüfung fehlschlägt. |
| Die Parameter | 1:1 | Die Parameter für den Methodentyp der Zeichenfolgenüberprüfung. |
Das Parameters-Element enthält die folgenden Elemente:
| Element | Vorkommen | BESCHREIBUNG |
|---|---|---|
| Parameter | 1:n | Die Parameter für den Methodentyp der Zeichenfolgenüberprüfung. |
Das Parameter-Element enthält die folgenden Attribute:
| Element | Vorkommen | BESCHREIBUNG |
|---|---|---|
| Id | 1:1 | Der Bezeichner des Parameters. |
Prädikatmethoden
IsLengthRange
Die IsLengthRange-Methode überprüft, ob sich die Länge eines Zeichenfolgenanspruchswerts innerhalb des Bereichs von minimalen und maximalen Parametern befindet. Sehen Sie sich die Live-Demo dieser Prädikatmethode an. Das Prädikatelement unterstützt die folgenden Parameter:
| Parameter | Erforderlich | BESCHREIBUNG |
|---|---|---|
| Höchstwert | Ja | Die maximale Anzahl von Zeichen, die eingegeben werden können. |
| Mindestwert | Ja | Die mindeste Anzahl von Zeichen, die eingegeben werden müssen. |
Das folgende Beispiel zeigt eine IsLengthRange-Methode mit den Parametern Minimum und Maximum die den Längenbereich der Zeichenfolge angeben:
<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>
ÜbereinstimmungenRegex
Die MatchesRegex-Methode überprüft, ob ein Zeichenfolgenanspruchswert mit einem regulären Ausdruck übereinstimmt. Sehen Sie sich die Live-Demo dieser Prädikatmethode an. Das Prädikatelement unterstützt die folgenden Parameter:
| Parameter | Erforderlich | BESCHREIBUNG |
|---|---|---|
| Regulärer Ausdruck | Ja | Das muster des regulären Ausdrucks, das übereinstimmen soll. |
Das folgende Beispiel zeigt eine MatchesRegex Methode mit dem Parameter RegularExpression , der einen regulären Ausdruck angibt:
<Predicate Id="PIN" Method="MatchesRegex" HelpText="The password must be numbers only.">
<Parameters>
<Parameter Id="RegularExpression">^[0-9]+$</Parameter>
</Parameters>
</Predicate>
IncludesCharacters
Die IncludesCharacters-Methode überprüft, ob ein Zeichenfolgenanspruchswert einen Zeichensatz enthält. Sehen Sie sich die Live-Demo dieser Prädikatmethode an. Das Prädikatelement unterstützt die folgenden Parameter:
| Parameter | Erforderlich | BESCHREIBUNG |
|---|---|---|
| CharacterSet | Ja | Der Satz von Zeichen, die eingegeben werden können. Beispiel: Kleinbuchstaben a-z, Großbuchstaben A-Z, Ziffern oder eine Liste von Symbolen 0-9, z @#$%^&*\-_+=[]{}|\\:',?/~"();!. B. . |
Das folgende Beispiel zeigt eine IncludesCharacters Methode mit dem Parameter CharacterSet , der den Satz von Zeichen angibt:
<Predicate Id="Lowercase" Method="IncludesCharacters" HelpText="a lowercase letter">
<Parameters>
<Parameter Id="CharacterSet">a-z</Parameter>
</Parameters>
</Predicate>
IsDateRange
Die IsDateRange-Methode überprüft, ob ein Datumsanspruchswert zwischen einem Bereich von minimalen und maximalen Parametern liegt. Sehen Sie sich die Live-Demo dieser Prädikatmethode an. Das Prädikatelement unterstützt die folgenden Parameter:
| Parameter | Erforderlich | BESCHREIBUNG |
|---|---|---|
| Höchstwert | Ja | Das größtmögliche Datum, das eingegeben werden kann. Das Format des Datums folgt yyyy-mm-dd der Konvention oder Today. |
| Mindestwert | Ja | Das kleinste mögliche Datum, das eingegeben werden kann. Das Format des Datums folgt yyyy-mm-dd der Konvention oder Today. |
Das folgende Beispiel zeigt eine IsDateRange Methode mit den Parametern Minimum und Maximum die den Datumsbereich mit einem Format von yyyy-mm-dd und 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>
PrädikatValidations
Während die Prädikate die Überprüfung auf einen Anspruchstyp definieren, gruppieren die PredicateValidations eine Gruppe von Prädikaten, um eine Benutzereingabeüberprüfung zu bilden, die auf einen Anspruchstyp angewendet werden kann. Jedes PredicateValidation-Element enthält einen Satz von PredicateGroup-Elementen , die einen Satz von PredicateReference-Elementen enthalten, die auf ein Prädikat verweist. Um die Überprüfung zu bestehen, sollte der Wert des Anspruchs alle Tests eines Prädikats unter allen PredicateGroup-Elementen mit ihrer Gruppe von PredicateReference-Elementen bestehen.
Das PredicateValidations-Element muss direkt nach dem Predicates-Element innerhalb des BuildingBlocks-Elements angezeigt werden.
<PredicateValidations>
<PredicateValidation Id="">
<PredicateGroups>
<PredicateGroup Id="">
<UserHelpText></UserHelpText>
<PredicateReferences MatchAtLeast="">
<PredicateReference Id="" />
...
</PredicateReferences>
</PredicateGroup>
...
</PredicateGroups>
</PredicateValidation>
...
</PredicateValidations>
Das PredicateValidations-Element enthält das folgende Element:
| Element | Vorkommen | BESCHREIBUNG |
|---|---|---|
| PrädikatValidation | 1:n | Eine Liste der Prädikatüberprüfung. |
Das PredicateValidation-Element enthält das folgende Attribut:
| Merkmal | Erforderlich | BESCHREIBUNG |
|---|---|---|
| Id | Ja | Ein Bezeichner, der für die Prädikatüberprüfung verwendet wird. Das ClaimType-Element kann diesen Bezeichner in der Richtlinie verwenden. |
Das PredicateValidation-Element enthält das folgende Element:
| Element | Vorkommen | BESCHREIBUNG |
|---|---|---|
| PrädikatGruppen | 1:n | Eine Liste von Prädikatgruppen. |
Das PredicateGroups-Element enthält das folgende Element:
| Element | Vorkommen | BESCHREIBUNG |
|---|---|---|
| PrädikatGruppe | 1:n | Eine Liste mit Prädikaten. |
Das PredicateGroup-Element enthält das folgende Attribut:
| Merkmal | Erforderlich | BESCHREIBUNG |
|---|---|---|
| Id | Ja | Ein Bezeichner, der für die Prädikatgruppe verwendet wird. |
Das PredicateGroup-Element enthält die folgenden Elemente:
| Element | Vorkommen | BESCHREIBUNG |
|---|---|---|
| BenutzerHilfeText | 0:1 | Eine Beschreibung des Prädikats, das für Benutzer hilfreich sein kann, um zu wissen, welchen Wert sie eingeben sollten. |
| PrädikatVerweise | 1:n | Eine Liste der Prädikatverweise. |
Das PredicateReferences-Element enthält die folgenden Attribute:
| Merkmal | Erforderlich | BESCHREIBUNG |
|---|---|---|
| Mindestens abgleichen | Nein | Gibt an, dass der Wert mindestens mit vielen Prädikatdefinitionen übereinstimmen muss, damit die Eingabe akzeptiert wird. Wenn nicht angegeben, muss der Wert mit allen Prädikatdefinitionen übereinstimmen. |
Das PredicateReferences-Element enthält die folgenden Elemente:
| Element | Vorkommen | BESCHREIBUNG |
|---|---|---|
| PrädikatReference | 1:n | Ein Verweis auf ein Prädikat. |
Das PredicateReference-Element enthält die folgenden Attribute:
| Merkmal | Erforderlich | BESCHREIBUNG |
|---|---|---|
| Id | Ja | Ein Bezeichner, der für die Prädikatüberprüfung verwendet wird. |
Konfigurieren der Kennwortkomplexität
Mit Prädikaten und PredicateValidationsInput können Sie die Komplexitätsanforderungen für Kennwörter steuern, die von einem Benutzer beim Erstellen eines Kontos bereitgestellt werden. Standardmäßig verwendet Azure AD B2C sichere Kennwörter. Azure AD B2C unterstützt auch Konfigurationsoptionen, um die Komplexität von Kennwörtern zu steuern, die Kunden verwenden können. Mithilfe dieser Prädikatelemente können Sie die Kennwortkomplexität definieren:
-
IsLengthBetween8And64 mit der
IsLengthRangeMethode überprüft, ob das Kennwort zwischen 8 und 64 Zeichen bestehen muss. -
Bei Verwendung der
IncludesCharactersMethode wird überprüft, ob das Kennwort einen Kleinbuchstaben enthält. -
Bei Verwendung der
IncludesCharactersMethode wird überprüft, ob das Kennwort einen Großbuchstaben enthält. -
Die Zahl mithilfe der
IncludesCharactersMethode überprüft, ob das Kennwort eine Ziffer enthält. -
Mithilfe der
IncludesCharactersMethode wird überprüft, ob das Kennwort eines von mehreren Symbolzeichen enthält. -
Die PIN mithilfe der
MatchesRegexMethode überprüft, ob das Kennwort nur Zahlen enthält. -
AllowedAADCharacters , die die
MatchesRegexMethode verwenden, überprüft, ob das Kennwort nur ungültiges Zeichen angegeben wurde. -
Nicht zulässigerWhitespace mit der
MatchesRegexMethode überprüft, ob das Kennwort nicht mit einem Leerzeichen beginnt oder endet.
<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>
Nachdem Sie die grundlegenden Überprüfungen definiert haben, können Sie sie kombinieren und eine Reihe von Kennwortrichtlinien erstellen, die Sie in Ihrer Richtlinie verwenden können:
- SimplePassword überprüft den DisallowedWhitespace, AllowedAADCharacters und IsLengthBetween8And64
-
StrongPassword überprüft den DisallowedWhitespace, AllowedAADCharacters, IsLengthBetween8And64. Die letzte Gruppe
CharacterClassesführt einen zusätzlichen Satz von Prädikaten aus, dieMatchAtLeastauf 3 festgelegt sind. Das Benutzerkennwort muss zwischen 8 und 16 Zeichen und drei der folgenden Zeichen liegen: Kleinbuchstaben, Großbuchstaben, Zahlen oder Symbol. - CustomPassword überprüft nur DisallowedWhitespace, AllowedAADCharacters. Der Benutzer kann also ein beliebiges Kennwort mit einer beliebigen Länge angeben, solange die Zeichen gültig sind.
<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>
Fügen Sie in Ihrem Anspruchstyp das PredicateValidationReference-Element hinzu, und geben Sie den Bezeichner als eine der Prädikatüberprüfungen an, z. B. SimplePassword, StrongPassword oder 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>
Im Folgenden wird gezeigt, wie die Elemente organisiert werden, wenn Azure AD B2C die Fehlermeldung anzeigt:
Konfigurieren eines Datumsbereichs
Mit den Predicates - und PredicateValidations-Elementen können Sie die Mindest- und Höchstdatumswerte des UserInputType mithilfe einer DateTimeDropdown. Erstellen Sie dazu ein Prädikat mit der IsDateRange Methode, und stellen Sie die minimalen und maximalen Parameter bereit.
<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>
Fügen Sie eine PredicateValidation mit einem Verweis auf das DateRange Prädikat hinzu.
<PredicateValidations>
<PredicateValidation Id="CustomDateRange">
<PredicateGroups>
<PredicateGroup Id="DateRangeGroup">
<PredicateReferences>
<PredicateReference Id="DateRange" />
</PredicateReferences>
</PredicateGroup>
</PredicateGroups>
</PredicateValidation>
</PredicateValidations>
Fügen Sie in Ihrem Anspruchstyp das PredicateValidationReference-Element hinzu, und geben Sie den Bezeichner als 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>
Nächste Schritte
- Erfahren Sie, wie Sie die Kennwortkomplexität mithilfe von benutzerdefinierten Richtlinien in Azure Active Directory B2C mithilfe von Prädikatüberprüfungen konfigurieren.