Predikáty a predikátyValidace
Poznámka
V Azure Active Directory B2C jsou vlastní zásady navržené primárně tak, aby řešily složité scénáře. Ve většině scénářů doporučujeme používat předdefinované toky uživatelů. Pokud jste to neudělali, přečtěte si informace o úvodním balíčku vlastních zásad v tématu Začínáme s vlastními zásadami v Active Directory B2C.
Elementy Predikates a PredicateValidations umožňují provést proces ověření, aby se zajistilo, že se do tenanta Azure Active Directory B2C (Azure AD B2C) zadávají pouze správně formátovaná data.
Následující diagram znázorňuje vztah mezi prvky:
Predikáty
Element Predikát definuje základní ověření pro kontrolu hodnoty typu deklarace identity a vrátí true
nebo false
. Ověření se provádí pomocí zadaného elementu Method a sady elementů parametru relevantních pro metodu. Predikát může například zkontrolovat, jestli je délka řetězcové hodnoty deklarace identity v rozsahu minimálních a maximálních zadaných parametrů, nebo jestli hodnota deklarace identity řetězce obsahuje znakovou sadu. UserHelpText Element poskytuje uživatelům chybovou zprávu, pokud kontrola selže. Hodnotu prvku UserHelpText lze lokalizovat pomocí přizpůsobení jazyka.
Element Predikates musí být zobrazen přímo po ClaimsSchema elementu v elementu BuildingBlocks .
Element Predikáty obsahuje následující prvek:
Prvek | Výskyty | Description |
---|---|---|
Predikátu | 1:n | Seznam predikátů. |
Element predikát obsahuje následující atributy:
Atribut | Povinné | Popis |
---|---|---|
Id | Yes | Identifikátor, který se používá pro predikát. Tento identifikátor můžou v zásadách používat i jiné prvky. |
Metoda | Yes | Typ metody, který se má použít k ověření. Možné hodnoty: IsLengthRange, MatchesRegex, IncludesCharacters nebo IsDateRange. |
Helptext | No | Pokud se kontrola nezdaří, zobrazí se uživatelům chybová zpráva. Tento řetězec lze lokalizovat pomocí přizpůsobení jazyka. |
Element Predikát obsahuje následující prvky:
Prvek | Výskyty | Description |
---|---|---|
UserHelpText | 0:1 | (Zastaralé) Pokud se kontrola nezdaří, zobrazí se uživatelům chybová zpráva. |
Parametry | 1:1 | Parametry pro typ metody ověření řetězce. |
Element Parameters obsahuje následující prvky:
Prvek | Výskyty | Description |
---|---|---|
Parametr | 1:n | Parametry pro typ metody ověření řetězce. |
Element Parameter obsahuje následující atributy:
Prvek | Výskyty | Popis |
---|---|---|
Id | 1:1 | Identifikátor parametru. |
Metody predikátu
IsLengthRange
IsLengthRange Metoda kontroluje, zda je délka řetězcové deklarace hodnoty v rozsahu minimálních a maximálních parametrů zadaných. Podívejte se na živou ukázku této metody predikátu. Element predikátu podporuje následující parametry:
Parametr | Povinné | Popis |
---|---|---|
Maximum | Yes | Maximální počet znaků, které lze zadat. |
Minimum | Yes | Minimální počet znaků, které musí být zadány. |
Následující příklad ukazuje IsLengthRange metodu s parametry Minimum
a Maximum
, které určují rozsah délky řetězce:
<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>
MatchesRegex
MatchesRegex Metoda zkontroluje, jestli hodnota deklarace identity řetězce odpovídá regulárnímu výrazu. Podívejte se na živou ukázku této metody predikátu. Element predikátu podporuje následující parametry:
Parametr | Povinné | Popis |
---|---|---|
Regulární výraz | Yes | Vzor regulárního výrazu, který se má shodovat. |
Následující příklad ukazuje metodu MatchesRegex
s parametrem RegularExpression
, který určuje regulární výraz:
<Predicate Id="PIN" Method="MatchesRegex" HelpText="The password must be numbers only.">
<Parameters>
<Parameter Id="RegularExpression">^[0-9]+$</Parameter>
</Parameters>
</Predicate>
IncludesCharacters
IncludesCharacters Metoda kontroluje, zda hodnota deklarace identity řetězce obsahuje znakovou sadu. Podívejte se na živou ukázku této metody predikátu. Element predikátu podporuje následující parametry:
Parametr | Povinné | Popis |
---|---|---|
Znaková sada | Yes | Sada znaků, které lze zadat. Například malá písmena a-z , velká písmena A-Z , číslice 0-9 nebo seznam symbolů, například @#$%^&*\-_+=[]{}|\\:',?/~"();! . |
Následující příklad ukazuje metodu IncludesCharacters
s parametrem CharacterSet
, který určuje sadu znaků:
<Predicate Id="Lowercase" Method="IncludesCharacters" HelpText="a lowercase letter">
<Parameters>
<Parameter Id="CharacterSet">a-z</Parameter>
</Parameters>
</Predicate>
IsDateRange
IsDateRange Metoda zkontroluje, jestli je hodnota deklarace data mezi rozsahem zadaných minimálních a maximálních parametrů. Podívejte se na živou ukázku této metody predikátu. Element predikátu podporuje následující parametry:
Parametr | Povinné | Popis |
---|---|---|
Maximum | Yes | Největší možné datum, které lze zadat. Formát data se řídí yyyy-mm-dd konvencí, nebo Today . |
Minimum | Yes | Nejmenší možné datum, které lze zadat. Formát data se řídí yyyy-mm-dd konvencí, nebo Today . |
Následující příklad ukazuje metodu IsDateRange
s parametry Minimum
a Maximum
, které určují rozsah dat ve formátu yyyy-mm-dd
a 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>
PredikátValidace
Zatímco predikáty definují ověření pro kontrolu typu deklarace identity, PredicateValidations seskupí sadu predikátů a vytvoří ověření vstupu uživatele, které lze použít na typ deklarace identity. Každý PredicateValidation prvek obsahuje sadu PredicateGroup prvky, které obsahují sadu PredicateReference prvky, které odkazují na predikát. Pro úspěšné ověření by hodnota deklarace identity měla projít všemi testy libovolného predikátu v rámci všech PredicateGroup s jejich sadou prvků PredicateReference .
Element PredicateValidations musí být zobrazen přímo za elementem Predikáty v elementu BuildingBlocks .
<PredicateValidations>
<PredicateValidation Id="">
<PredicateGroups>
<PredicateGroup Id="">
<UserHelpText></UserHelpText>
<PredicateReferences MatchAtLeast="">
<PredicateReference Id="" />
...
</PredicateReferences>
</PredicateGroup>
...
</PredicateGroups>
</PredicateValidation>
...
</PredicateValidations>
Element PredicateValidations obsahuje následující element:
Prvek | Výskyty | Popis |
---|---|---|
PredikátValidation | 1:n | Seznam ověření predikátu. |
Element PredicateValidation obsahuje následující atribut:
Atribut | Povinné | Popis |
---|---|---|
Id | Yes | Identifikátor, který se používá k ověření predikátu. Element ClaimType může použít tento identifikátor v zásadách. |
Element PredicateValidation obsahuje následující element:
Prvek | Výskyty | Popis |
---|---|---|
PredicateGroups | 1:n | Seznam skupin predikátů. |
Element PredicateGroups obsahuje následující element:
Prvek | Výskyty | Popis |
---|---|---|
Skupina predikátů | 1:n | Seznam predikátů. |
Element PredicateGroup obsahuje následující atribut:
Atribut | Povinné | Popis |
---|---|---|
Id | Yes | Identifikátor, který se používá pro skupinu predikátů. |
Element PredicateGroup obsahuje následující prvky:
Prvek | Výskyty | Popis |
---|---|---|
UserHelpText | 0:1 | Popis predikátu, který může být užitečný, aby uživatelé věděli, jakou hodnotu mají zadat. |
PredikátReference | 1:n | Seznam odkazů predikátu. |
Element PredicateReferences obsahuje následující atributy:
Atribut | Povinné | Popis |
---|---|---|
MatchAtLeast | No | Určuje, že hodnota musí odpovídat alespoň tolika definici predikátu, aby vstup byl přijat. Pokud není hodnota zadána, musí se shodovat se všemi definicemi predikátu. |
Element PredicateReferences obsahuje následující prvky:
Prvek | Výskyty | Popis |
---|---|---|
PredikátReference | 1:n | Odkaz na predikát. |
Element PredicateReference obsahuje následující atributy:
Atribut | Povinné | Popis |
---|---|---|
Id | Yes | Identifikátor, který se používá k ověření predikátu. |
Konfigurace složitosti hesla
Pomocí predikátů a predikátuValidationsInput můžete řídit požadavky na složitost hesel, která uživatel poskytuje při vytváření účtu. ve výchozím nastavení Azure AD B2C používá silná hesla. Azure AD B2C také podporuje možnosti konfigurace pro řízení složitosti hesel, která můžou zákazníci používat. Složitost hesla můžete definovat pomocí těchto elementů predikátu:
- IsLengthBetween8And64 pomocí
IsLengthRange
metody ověří, že heslo musí mít délku 8 až 64 znaků. - Malá písmena pomocí
IncludesCharacters
metody ověří, že heslo obsahuje malé písmeno. - Velká písmena pomocí
IncludesCharacters
metody ověří, že heslo obsahuje velké písmeno. - Číslo pomocí
IncludesCharacters
metody ověří, že heslo obsahuje číslici. - Symbol pomocí
IncludesCharacters
metody ověří, že heslo obsahuje jeden z několika znaků symbolu. - PIN kód pomocí
MatchesRegex
metody ověří, že heslo obsahuje pouze čísla. - AllowedAADCharacters pomocí
MatchesRegex
metody ověří, že heslo zadalo pouze neplatný znak. - DisallowedWhitespace pomocí
MatchesRegex
metody ověří, že heslo nezačíná nebo končí prázdným znakem.
<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>
Po definování základních ověření je můžete zkombinovat a vytvořit sadu zásad hesel, které můžete použít ve svých zásadách:
- SimplePassword ověří hodnoty DisallowedWhitespace, AllowedAADCharacters a IsLengthBetween8And64.
- StrongPassword ověří DisallowedWhitespace, AllowedAADCharacters, IsLengthBetween8And64. Poslední skupina
CharacterClasses
spustí další sadu predikátů s nastavenouMatchAtLeast
na hodnotu 3. Heslo uživatele musí obsahovat 8 až 16 znaků a tři z následujících znaků: Malá písmena, Velká písmena, Číslo nebo Symbol. - CustomPassword ověřuje pouze DisallowedWhitespace, AllowedAADCharacters. Uživatel tak může zadat libovolné heslo s libovolnou délkou, pokud jsou znaky platné.
<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>
V typu deklarace identity přidejte element PredicateValidationReference a zadejte identifikátor jako jedno z ověření predikátu, například SimplePassword, StrongPassword nebo 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>
Následující informace ukazují, jak jsou prvky uspořádány, když Azure AD B2C zobrazí chybovou zprávu:
Konfigurace rozsahu dat
S predikáty a predikáteValidations elementy můžete řídit minimální a maximální hodnoty data UserInputType pomocí DateTimeDropdown
. Chcete-li to provést, vytvořte predikát s metodou IsDateRange
a zadejte minimální a maximální parametry.
<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>
Přidejte predikátValidace s odkazem na DateRange
predikát.
<PredicateValidations>
<PredicateValidation Id="CustomDateRange">
<PredicateGroups>
<PredicateGroup Id="DateRangeGroup">
<PredicateReferences>
<PredicateReference Id="DateRange" />
</PredicateReferences>
</PredicateGroup>
</PredicateGroups>
</PredicateValidation>
</PredicateValidations>
Do typu deklarace identity přidejte element PredicateValidationReference a zadejte identifikátor jako 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>
Další kroky
- Zjistěte, jak nakonfigurovat složitost hesla pomocí vlastních zásad v Azure Active Directory B2C pomocí ověřování predikátu.