Predikáty a predikátyValidace
Poznámka:
V Azure Active Directory B2C jsou vlastní zásady navržené především pro řešení složitých scénářů. Ve většině scénářů doporučujeme používat integrované 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 ve službě 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ě vytvořená data.
Následující diagram znázorňuje vztah mezi prvky:
Predikáty
Predikát element 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 hodnoty deklarace identity řetězce v rozsahu zadaných minimálních a maximálních parametrů nebo jestli hodnota deklarace identity řetězce obsahuje znakovou sadu. Element UserHelpText poskytuje uživatelům chybovou zprávu, pokud se kontrola nezdaří. Hodnotu elementu UserHelpText lze lokalizovat pomocí přizpůsobení jazyka.
Predikates element musí být zobrazen přímo za ClaimsSchema element uvnitř BuildingBlocks elementu.
Element Predikates obsahuje následující prvek:
Element (Prvek) | Výskyty | Popis |
---|---|---|
Predikátu | 1:n | Seznam predikátů. |
Predikát element obsahuje následující atributy:
Atribut | Požadováno | Popis |
---|---|---|
Id | Ano | Identifikátor, který se používá pro predikát. Ostatní prvky můžou tento identifikátor použít v zásadách. |
metoda | Ano | 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. |
Predikát element obsahuje následující prvky:
Element (Prvek) | Výskyty | Popis |
---|---|---|
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:
Element (Prvek) | Výskyty | Popis |
---|---|---|
Parametr | 1:n | Parametry pro typ metody ověření řetězce. |
Element Parameter obsahuje následující atributy:
Element (Prvek) | Výskyty | Popis |
---|---|---|
Id | 1:1 | Identifikátor parametru. |
Predikátové metody
IsLengthRange
IsLengthRange metoda kontroluje, zda délka řetězcové deklarace hodnoty je v rozsahu minimální a maximální parametry zadané. Podívejte se na živou ukázku této predikátové metody. Predikát element podporuje následující parametry:
Parametr | Požadováno | Popis |
---|---|---|
Maximum | Ano | Maximální počet znaků, které lze zadat. |
Minimum | Ano | Minimální počet znaků, které musí být zadány. |
Následující příklad ukazuje IsLengthRange metoda 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
Metoda MatchesRegex zkontroluje, zda hodnota deklarace identity řetězce odpovídá regulárnímu výrazu. Podívejte se na živou ukázku této predikátové metody. Predikát element podporuje následující parametry:
Parametr | Požadováno | Popis |
---|---|---|
RegularExpression | Ano | 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
Metoda IncludesCharacters zkontroluje, zda hodnota deklarace řetězce obsahuje znakovou sadu. Podívejte se na živou ukázku této predikátové metody. Predikát element podporuje následující parametry:
Parametr | Požadováno | Popis |
---|---|---|
Znaková sada | Ano | 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
Metoda IsDateRange zkontroluje, zda je hodnota deklarace data mezi rozsahem minimálních a maximálních parametrů zadaných. Podívejte se na živou ukázku této predikátové metody. Predikát element podporuje následující parametry:
Parametr | Požadováno | Popis |
---|---|---|
Maximum | Ano | Největší možné datum, které lze zadat. Formát data se řídí yyyy-mm-dd konvencí nebo Today . |
Minimum | Ano | 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 kalendářních 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átValidations
Zatímco predikáty definují ověření pro kontrolu typu deklarace identity, predikateValidations seskupuje sadu predikátů pro vytvoření ověření vstupu uživatele, které lze použít u typu deklarace identity. Každý predikateValidation element obsahuje sadu PredicateGroup elementy, které obsahují sadu PredicateReference prvků, které odkazuje na predikát. Pokud chcete projít ověřením, hodnota deklarace by měla projít všechny testy jakéhokoli predikátu ve všech predikáteskupinách s jejich sadou predikáteReference prvků.
PredicateValidations element musí být zobrazen přímo za predikates element v rámci BuildingBlocks elementu.
<PredicateValidations>
<PredicateValidation Id="">
<PredicateGroups>
<PredicateGroup Id="">
<UserHelpText></UserHelpText>
<PredicateReferences MatchAtLeast="">
<PredicateReference Id="" />
...
</PredicateReferences>
</PredicateGroup>
...
</PredicateGroups>
</PredicateValidation>
...
</PredicateValidations>
PredicateValidations element obsahuje následující prvek:
Element (Prvek) | Výskyty | Popis |
---|---|---|
PredikátValidation | 1:n | Seznam ověření predikátu |
PredicateValidation element obsahuje následující atribut:
Atribut | Požadováno | Popis |
---|---|---|
Id | Ano | Identifikátor, který se používá pro ověření predikátu. Element ClaimType může použít tento identifikátor v zásadě. |
PredicateValidation element obsahuje následující prvek:
Element (Prvek) | Výskyty | Popis |
---|---|---|
Skupiny predikátů | 1:n | Seznam predikátů. |
Element PredicateGroups obsahuje následující prvek:
Element (Prvek) | Výskyty | Popis |
---|---|---|
PredikátGroup | 1:n | Seznam predikátů. |
Element PredicateGroup obsahuje následující atribut:
Atribut | Požadováno | Popis |
---|---|---|
Id | Ano | Identifikátor, který se používá pro skupinu predikátů. |
PredicateGroup element obsahuje následující prvky:
Element (Prvek) | Výskyty | Popis |
---|---|---|
UserHelpText | 0:1 | Popis predikátu, který může být užitečný pro uživatele, aby věděli, jakou hodnotu mají zadávat. |
PredikátReference | 1:n | Seznam odkazů na predikát. |
Element PredicateReferences obsahuje následující atributy:
Atribut | Požadováno | Popis |
---|---|---|
MatchAtLeast | No | Určuje, že hodnota se musí shodovat alespoň s mnoha definicemi predikátu pro vstup, který má být přijat. Pokud není zadána, musí hodnota odpovídat všem definicám predikátu. |
Element PredicateReferences obsahuje následující prvky:
Element (Prvek) | Výskyty | Popis |
---|---|---|
PredikátReference | 1:n | Odkaz na predikát. |
Element PredicateReference obsahuje následující atributy:
Atribut | Požadováno | Popis |
---|---|---|
Id | Ano | Identifikátor, který se používá pro ověření predikátu. |
Konfigurace složitosti hesla
Pomocí predikátů a predikátůValidationsInput můžete řídit požadavky na složitost hesel poskytovaných uživatelem při vytváření účtu. Azure AD B2C ve výchozím nastavení 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 predikátových prvků:
- IsLengthBetween8And64 pomocí
IsLengthRange
metody ověří, že heslo musí být mezi 8 a 64 znaky. - Malá písmena pomocí
IncludesCharacters
metody ověří, že heslo obsahuje malá písmena. - 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 jenom čísla. - AllowedAADCharacters using the
MatchesRegex
method, ověří, že heslo byl poskytnut 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ěří nepovolené hodnotyWhitespace, AllowedAADCharacters a IsLengthBetween8And64.
- StrongPassword ověří nepovolený prostorWhitespace, AllowedAADCharacters, IsLengthBetween8And64. Poslední skupina
CharacterClasses
spustí další sadu predikátů s nastavenouMatchAtLeast
na hodnotu 3. Uživatelské heslo musí mít 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 nepovolené znakyWhitespace, AllowedAADCharacters. Uživatel tak může zadat jakékoli 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>
Do 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í příklad ukazuje, jak jsou prvky uspořádané, 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
. Uděláte to tak, že vytvoříte predikát s metodou IsDateRange
a poskytnete 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átValidation s odkazem DateRange
na predikát.
<PredicateValidations>
<PredicateValidation Id="CustomDateRange">
<PredicateGroups>
<PredicateGroup Id="DateRangeGroup">
<PredicateReferences>
<PredicateReference Id="DateRange" />
</PredicateReferences>
</PredicateGroup>
</PredicateGroups>
</PredicateValidation>
</PredicateValidations>
V typu deklarace identity přidejte PredicateValidationReference element 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 hesel pomocí vlastních zásad v Azure Active Directory B2C pomocí ověřování predikátů.