Predikátumok és predikátumértékek
Megjegyzés
Az Azure Active Directory B2C-ben az egyéni szabályzatok elsősorban összetett forgatókönyvek kezelésére szolgálnak. A legtöbb esetben javasoljuk, hogy beépített felhasználói folyamatokat használjon. Ha még nem tette meg, tekintse meg az egyéni szabályzatok kezdőcsomagját az Egyéni szabályzatok használatának első lépései az Active Directory B2C-ben című témakörben.
A Predikátumok és PredicateValidations elemek lehetővé teszik egy ellenőrzési folyamat végrehajtását, hogy csak a megfelelően formázott adatok legyenek beírva az Azure Active Directory B2C-bérlőbe (Azure AD B2C).
Az alábbi diagram az elemek közötti kapcsolatot mutatja be:
Predikátumok
A Predikátum elem egy alapszintű ellenőrzést határoz meg egy jogcímtípus értékének ellenőrzéséhez, és visszaadja true
a vagy false
a értéket. Az érvényesítés egy megadott Metóduselem és a metódushoz kapcsolódó paraméterelemek halmaza használatával történik. Egy predikátum például ellenőrizheti, hogy egy sztring jogcímértékének hossza a megadott minimális és maximális paraméterek tartományán belül van-e, vagy egy sztring jogcímértéke tartalmaz-e karakterkészletet. A UserHelpText elem hibaüzenetet jelenít meg a felhasználók számára, ha az ellenőrzés sikertelen. A UserHelpText elem értéke honosítható a nyelv testreszabásával.
A Predikátum elemnek közvetlenül a ClaimsSchema elem után kell megjelennie a BuildingBlocks elemen belül.
A Predikátumok elem a következő elemet tartalmazza:
Elem | Események | Leírás |
---|---|---|
Predikátum | 1:n | Predikátumok listája. |
A Predikátum elem a következő attribútumokat tartalmazza:
Attribútum | Kötelező | Leírás |
---|---|---|
Id | Igen | A predikátumhoz használt azonosító. Más elemek is használhatják ezt az azonosítót a szabályzatban. |
Metódus | Igen | Az ellenőrzéshez használandó metódustípus. Lehetséges értékek: IsLengthRange, MatchesRegex, IncludesCharacters vagy IsDateRange. |
Súgószöveg | Nem | Hibaüzenet a felhasználók számára, ha az ellenőrzés sikertelen. Ez a sztring honosítható a nyelv testreszabásával |
A Predikátum elem a következő elemeket tartalmazza:
Elem | Események | Leírás |
---|---|---|
UserHelpText | 0:1 | (Elavult) Hibaüzenet a felhasználók számára, ha az ellenőrzés sikertelen. |
Paraméterek | 1:1 | A sztringérvényesítés metódustípusának paraméterei. |
A Parameters elem a következő elemeket tartalmazza:
Elem | Események | Leírás |
---|---|---|
Paraméter | 1:n | A sztringérvényesítés metódustípusának paraméterei. |
A Paraméter elem a következő attribútumokat tartalmazza:
Elem | Események | Leírás |
---|---|---|
Id | 1:1 | A paraméter azonosítója. |
Predikátumi módszerek
IsLengthRange
Az IsLengthRange metódus ellenőrzi, hogy egy sztring jogcímértékének hossza a megadott minimális és maximális paraméterek tartományán belül van-e. Tekintse meg a predikátummetódus élő bemutatóját . A predikátum elem a következő paramétereket támogatja:
Paraméter | Kötelező | Leírás |
---|---|---|
Maximum | Igen | A beírható karakterek maximális száma. |
Minimális | Igen | A beírandó karakterek minimális száma. |
Az alábbi példa egy IsLengthRange metódust mutat be a paraméterekkel Minimum
, és Maximum
megadja a sztring hossztartományát:
<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
A MatchesRegex metódus ellenőrzi, hogy egy sztring jogcímértéke megegyezik-e egy reguláris kifejezéssel. Tekintse meg a predikátummetódus élő bemutatóját . A predikátum elem a következő paramétereket támogatja:
Paraméter | Kötelező | Leírás |
---|---|---|
RegularExpression | Igen | A normál kifejezési minta, amely megfelel. |
Az alábbi példa egy metódust MatchesRegex
mutat be a paraméterrel RegularExpression
, amely egy reguláris kifejezést ad meg:
<Predicate Id="PIN" Method="MatchesRegex" HelpText="The password must be numbers only.">
<Parameters>
<Parameter Id="RegularExpression">^[0-9]+$</Parameter>
</Parameters>
</Predicate>
IncludesCharacters
Az IncludesCharacters metódus ellenőrzi, hogy egy sztring jogcímértéke tartalmaz-e karakterkészletet. Tekintse meg a predikátummetódus élő bemutatóját . A predikátum elem a következő paramétereket támogatja:
Paraméter | Kötelező | Leírás |
---|---|---|
Karakterkészlet | Igen | A beírható karakterek halmaza. Például kisbetűk a-z , nagybetűk A-Z , számjegyek 0-9 vagy szimbólumok listája, például @#$%^&*\-_+=[]{}|\\:',?/~"();! . |
Az alábbi példa egy metódust IncludesCharacters
mutat be a paraméterrel CharacterSet
, amely meghatározza a karakterek halmazát:
<Predicate Id="Lowercase" Method="IncludesCharacters" HelpText="a lowercase letter">
<Parameters>
<Parameter Id="CharacterSet">a-z</Parameter>
</Parameters>
</Predicate>
IsDateRange
Az IsDateRange metódus ellenőrzi, hogy a dátum jogcímének értéke a megadott minimális és maximális paraméterek tartománya között van-e. Tekintse meg a predikátummetódus élő bemutatóját . A predikátum elem a következő paramétereket támogatja:
Paraméter | Kötelező | Leírás |
---|---|---|
Maximum | Igen | A lehető legnagyobb megadható dátum. A dátum formátuma a konvenciót Today vagy a yyyy-mm-dd következőt követi: . |
Minimális | Igen | A beírható legkisebb dátum. A dátum formátuma a konvenciót Today vagy a yyyy-mm-dd következőt követi: . |
Az alábbi példa egy metódust IsDateRange
mutat be a paraméterekkelMinimum
, és Maximum
a dátumtartományt és Today
a formátumot yyyy-mm-dd
adja meg.
<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>
PredikateValidations
Bár a predikátumok meghatározzák az érvényesítést a jogcímtípus ellenőrzéséhez, a PredicateValidations egy predikátumkészletet csoportosít, amely egy jogcímtípusra alkalmazható felhasználói beviteli ellenőrzést hoz létre. Minden PredicateValidation elem PredicateGroup elemeket tartalmaz, amelyek predikátumra mutató PredicateReference elemek készletét tartalmazzák. Az ellenőrzés sikeres elvégzéséhez a jogcím értékének a Predikátumcsoport összes predikátumcsoportja alá tartozó predikátum összes tesztjének át kell mennie predikátumelemek készletével.
A PredicateValidations elemnek közvetlenül a BuildingBlocks elem Predicates elemét követve kell megjelennie.
<PredicateValidations>
<PredicateValidation Id="">
<PredicateGroups>
<PredicateGroup Id="">
<UserHelpText></UserHelpText>
<PredicateReferences MatchAtLeast="">
<PredicateReference Id="" />
...
</PredicateReferences>
</PredicateGroup>
...
</PredicateGroups>
</PredicateValidation>
...
</PredicateValidations>
A PredicateValidations elem a következő elemet tartalmazza:
Elem | Események | Leírás |
---|---|---|
PredikateValidation | 1:n | Predikátum-ellenőrzés listája. |
A PredicateValidation elem a következő attribútumot tartalmazza:
Attribútum | Kötelező | Leírás |
---|---|---|
Id | Igen | A predikátum érvényesítéséhez használt azonosító. A ClaimType elem ezt az azonosítót használhatja a szabályzatban. |
A PredicateValidation elem a következő elemet tartalmazza:
Elem | Események | Leírás |
---|---|---|
Predikátumcsoportok | 1:n | Predikátumcsoportok listája. |
A PredicateGroups elem a következő elemet tartalmazza:
Elem | Események | Leírás |
---|---|---|
Predikátumcsoport | 1:n | Predikátumok listája. |
A PredicateGroup elem a következő attribútumot tartalmazza:
Attribútum | Kötelező | Leírás |
---|---|---|
Id | Igen | A predikátumcsoporthoz használt azonosító. |
A PredicateGroup elem a következő elemeket tartalmazza:
Elem | Események | Leírás |
---|---|---|
UserHelpText | 0:1 | A predikátum leírása, amely hasznos lehet a felhasználók számára, hogy tudják, milyen értéket kell beírniuk. |
PredikateReferences | 1:n | Predikátumhivatkozások listája. |
A PredicateReferences elem a következő attribútumokat tartalmazza:
Attribútum | Kötelező | Leírás |
---|---|---|
MatchAtLeast | Nem | Azt határozza meg, hogy az értéknek legalább annyi predikátumdefinícióval kell megegyeznie a bemenethez, amelyet el kell fogadnia. Ha nincs megadva, az értéknek meg kell egyeznie az összes predikátumdefinícióval. |
A PredicateReferences elem a következő elemeket tartalmazza:
Elem | Események | Leírás |
---|---|---|
PredikátumReferencia | 1:n | Egy predikátumra mutató hivatkozás. |
A PredicateReference elem a következő attribútumokat tartalmazza:
Attribútum | Kötelező | Leírás |
---|---|---|
Id | Igen | A predikátum érvényesítéséhez használt azonosító. |
Jelszó összetettségének konfigurálása
A Predikátumok és a PredicateValidationsInput segítségével szabályozhatja a felhasználók által a fiók létrehozásakor megadott jelszavak összetettségi követelményeit. Alapértelmezés szerint Azure AD B2C erős jelszavakat használ. Azure AD A B2C támogatja a konfigurációs beállításokat is az ügyfelek által használható jelszavak összetettségének szabályozásához. A jelszó összetettségét az alábbi predikátumelemek használatával határozhatja meg:
- Az IsLengthBetween8And64 metódussal
IsLengthRange
ellenőrzi, hogy a jelszónak 8 és 64 karakter közöttinek kell lennie. - A metódust használó
IncludesCharacters
kisbetű ellenőrzi, hogy a jelszó kisbetűt tartalmaz-e. - A metódust használó
IncludesCharacters
nagybetűk ellenőrzik, hogy a jelszó nagybetűt tartalmaz-e. - A metódust
IncludesCharacters
használó szám ellenőrzi, hogy a jelszó tartalmaz-e számjegyet. - A metódust
IncludesCharacters
használó szimbólum ellenőrzi, hogy a jelszó tartalmazza-e a szimbólumkarakterek egyikét. - PIN-kód a
MatchesRegex
metódussal ellenőrzi, hogy a jelszó csak számokat tartalmaz-e. - A metódust használó
MatchesRegex
AllowedAADCharacters ellenőrzi, hogy a jelszó csak érvénytelen karaktert adott-e meg. - DisallowedWhitespace a
MatchesRegex
metódussal ellenőrzi, hogy a jelszó ne kezdődjön vagy végződjön szóköz karakterrel.
<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>
Az alapvető ellenőrzések definiálása után kombinálhatja őket, és létrehozhat egy jelszóházirend-készletet, amelyet használhat a szabályzatban:
- A SimplePassword ellenőrzi a DisallowedWhitespace, Az AllowedAADCharacters és az IsLengthBetween8And64 értéket
- A StrongPassword ellenőrzi a DisallowedWhitespace, AllowedAADCharacters, IsLengthBetween8And64 értéket. Az utolsó csoport
CharacterClasses
egy további predikátumkészletetMatchAtLeast
futtat 3-ra állítva. A felhasználói jelszónak 8 és 16 karakter közöttinek kell lennie, és a következő három karakternek kell lennie: kisbetűs, nagybetűs, szám vagy szimbólum. - A CustomPassword csak a DisallowedWhitespace, AllowedAADCharacters értéket ellenőrzi. A felhasználó tehát bármilyen hosszúságú jelszót megadhat, feltéve, hogy a karakterek érvényesek.
<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>
A jogcímtípusban adja hozzá a PredicateValidationReference elemet, és adja meg az azonosítót a predikátumérvényesítések egyikeként, például SimplePassword, StrongPassword vagy 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>
Az alábbiakban az elemek rendszerezését mutatjuk be, amikor Azure AD B2C megjeleníti a hibaüzenetet:
Dátumtartomány konfigurálása
A Predikátumok és PredicateValidations elemek segítségével a UserInputType minimális és maximális dátumértékét szabályozhatja.DateTimeDropdown
Ehhez hozzon létre egy predikátumot a IsDateRange
metódussal, és adja meg a minimális és maximális paramétereket.
<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>
Adjon hozzá egy PredicateValidation értéket a DateRange
predikátumra mutató hivatkozással.
<PredicateValidations>
<PredicateValidation Id="CustomDateRange">
<PredicateGroups>
<PredicateGroup Id="DateRangeGroup">
<PredicateReferences>
<PredicateReference Id="DateRange" />
</PredicateReferences>
</PredicateGroup>
</PredicateGroups>
</PredicateValidation>
</PredicateValidations>
A jogcímtípusban adja hozzá a PredicateValidationReference elemet, és adja meg az azonosítót a következőként: 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>
Következő lépések
- Megtudhatja, hogyan konfigurálhatja a jelszó összetettségét egyéni szabályzatok használatával az Azure Active Directory B2C-ben predikátum-érvényesítések használatával.