Predikátumok és predikátumértékek
Feljegyzés
Az Azure Active Directory B2C-ben az egyéni szabályzatok elsősorban összetett helyzetek kezelésére szolgálnak. A legtöbb forgatókönyv esetében javasoljuk, hogy beépített felhasználói folyamatokat használjon. Ha még nem tette meg, ismerkedjen meg az egyéni szabályzatok kezdőcsomagjával az Egyéni szabályzatok használatának első lépései az Active Directory B2C-ben.
A Predikátumok és PredicateValidations elemek lehetővé teszik az ellenőrzési folyamat végrehajtását, hogy csak a megfelelően formázott adatok legyenek beírva az Azure Active Directory B2C (Azure AD B2C) bérlőbe.
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 vagy visszaadja true
azokat false
. Az érvényesítés egy megadott metóduselem és a metódus szempontjából releváns paraméterelemek készletének használatával történik. Egy predikátum például ellenőrizheti, hogy a 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 küld a felhasználóknak, ha az ellenőrzés sikertelen. A UserHelpText elem értéke nyelvi testreszabással honosítható.
A Predikates elemnek közvetlenül a ClaimsSchema elem után kell megjelennie a BuildingBlocks elemen belül.
A Predicates elem a következő elemet tartalmazza:
Elem | Események | Leírás |
---|---|---|
Predikátum | 1:n | A 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 Paraméterek 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átumi módszer é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. |
Minimum | 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átumi módszer élő bemutatóját . A predikátum elem a következő paramétereket támogatja:
Paraméter | Kötelező | Leírás |
---|---|---|
RegularExpression | Igen | Az egyező reguláris kifejezésminta. |
Az alábbi példa egy olyan metódust MatchesRegex
mutat be, amely egy reguláris kifejezést meghatározó paraméterrel RegularExpression
rendelkezik:
<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átumi módszer élő bemutatóját . A predikátum elem a következő paramétereket támogatja:
Paraméter | Kötelező | Leírás |
---|---|---|
CharacterSet | 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 karakterkészletet meghatározó paraméterrel CharacterSet
:
<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értéke a megadott minimális és maximális paraméterek tartománya között van-e. Tekintse meg a predikátumi módszer é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 legnagyobb megadható dátum. A dátum formátuma a konvenciót yyyy-mm-dd követi, vagy Today . |
Minimum | Igen | A megadható legkisebb dátum. A dátum formátuma a konvenciót yyyy-mm-dd követi, vagy Today . |
Az alábbi példa egy olyan metódust IsDateRange
mutat be a paraméterekkel Maximum
Minimum
, amely a dátumtartományt yyyy-mm-dd
Today
és a formátumot 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>
PredicateValidations
Bár a predikátumok meghatározzák a jogcímtípus ellenőrzéséhez használt ellenőrzést, 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 elemeket tartalmaznak. Az ellenőrzés elvégzéséhez a jogcím értékének a PredicateGroup összes predikátumának minden próbáját át kell adnia a PredicateReference elemek készletével.
A PredicateValidations elemnek közvetlenül a Predicates elem után kell megjelennie a BuildingBlocks elemen belül.
<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 |
---|---|---|
PredicateValidation | 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 |
---|---|---|
PredicateGroup | 1:n | A 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 segíthet a felhasználóknak abban, hogy tudják, milyen értéket kell beírniuk. |
PredicateReferences | 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 | Megadja, 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 |
---|---|---|
PredicateReference | 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 Predicates és a PredicateValidationsInput segítségével szabályozhatja a felhasználó által a fiók létrehozásakor megadott jelszavak összetettségi követelményeit. Az Azure AD B2C alapértelmezés szerint erős jelszavakat használ. Az Azure AD B2C a konfigurációs beállításokat is támogatja 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:
- A metódust használó
IsLengthRange
IsLengthBetween8And64 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ó több szimbólumkarakterek egyikét tartalmazza-e. - PIN-kód a
MatchesRegex
módszerrel 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. - A metódust használó
MatchesRegex
DisallowedWhitespace 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ő érvényesítések meghatározása után kombinálhatja őket, és létrehozhat egy jelszóházirend-készletet, amelyet a szabályzatban használhat:
- A SimplePassword ellenőrzi a DisallowedWhitespace, az AllowedAADCharacters és az IsLengthBetween8And64 függvényt
- A StrongPassword ellenőrzi a DisallowedWhitespace, AllowedAADCharacters, IsLengthBetween8And64 függvényt. Az utolsó csoport
CharacterClasses
egy további predikátumkészletet futtat 3-raMatchAtLeast
állítva. A felhasználói jelszónak 8 és 16 karakter közöttinek kell lennie, és a következő karakterek közül háromnak kell lennie: Kisbetű, Nagybetű, Szám vagy Szimbólum. - A CustomPassword csak a DisallowedWhitespace, AllowedAADCharacters értékeket 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ábbi ábra bemutatja, hogyan vannak rendszerezve az elemek, amikor az Azure AD B2C megjeleníti a hibaüzenetet:
Dátumtartomány konfigurálása
A Predicates és a PredicateValidations elemekkel szabályozhatja a UserInputType minimális és maximális dátumértékeit egy 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.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.