Koşul ve KoşulKaridasyonları
Not
Azure Active Directory B2C'de özel ilkeler öncelikli olarak karmaşık senaryoları ele almak için tasarlanmıştır. Çoğu senaryoda, yerleşik kullanıcı akışlarını kullanmanızı öneririz. Bunu yapmadıysanız, Active Directory B2C'de özel ilkeleri kullanmaya başlama bölümünde özel ilke başlangıç paketi hakkında bilgi edinin.
Predicates ve PredicateValidations öğeleri, Azure Active Directory B2C (Azure AD B2C) kiracınıza yalnızca düzgün biçimlendirilmiş verilerin girildiğinden emin olmak için bir doğrulama işlemi gerçekleştirmenizi sağlar.
Aşağıdaki diyagramda öğeler arasındaki ilişki gösterilmektedir:
Koşullar
Koşul öğesi, bir talep türünün değerini denetlemek için temel bir doğrulama tanımlar ve veya false
döndürürtrue
. Doğrulama, belirtilen bir Method öğesi ve yöntemiyle ilgili parametre öğeleri kümesi kullanılarak yapılır. Örneğin, bir koşul, dize talep değerinin uzunluğunun belirtilen en düşük ve en fazla parametre aralığında olup olmadığını veya dize talep değerinin karakter kümesi içerip içermediğini denetleyebilir. UserHelpText öğesi, denetim başarısız olursa kullanıcılar için bir hata iletisi sağlar. UserHelpText öğesinin değeri dil özelleştirmesi kullanılarak yerelleştirilebilir.
Predicates öğesi, BuildingBlocks öğesindeki ClaimsSchema öğesinin hemen ardından görünmelidir.
Predicates öğesi aşağıdaki öğeyi içerir:
Öğe | Oluşum | Açıklama |
---|---|---|
Yüklemi | 1:n | Koşul listesi. |
Koşul öğesi aşağıdaki öznitelikleri içerir:
Öznitelik | Zorunlu | Açıklama |
---|---|---|
Kimlik | Yes | Koşul için kullanılan bir tanımlayıcı. Diğer öğeler ilkede bu tanımlayıcıyı kullanabilir. |
Metot | Yes | Doğrulama için kullanılacak yöntem türü. Olası değerler: IsLengthRange, MatchesRegex, IncludesCharacters veya IsDateRange. |
Helptext | Hayır | Denetim başarısız olursa kullanıcılar için bir hata iletisi. Bu dize dil özelleştirmesi kullanılarak yerelleştirilebilir |
Koşul öğesi aşağıdaki öğeleri içerir:
Öğe | Oluşum | Açıklama |
---|---|---|
UserHelpText | 0:1 | (Kullanım dışı) Denetim başarısız olursa kullanıcılar için bir hata iletisi. |
Parametreler | 1:1 | Dize doğrulamasının yöntem türü için parametreler. |
Parameters öğesi aşağıdaki öğeleri içerir:
Öğe | Oluşum | Açıklama |
---|---|---|
Parametre | 1:n | Dize doğrulamasının yöntem türü için parametreler. |
Parameter öğesi aşağıdaki öznitelikleri içerir:
Öğe | Oluşum | Açıklama |
---|---|---|
Kimlik | 1:1 | Parametresinin tanımlayıcısı. |
Koşul yöntemleri
IsLengthRange
IsLengthRange yöntemi, dize talep değerinin uzunluğunun belirtilen en düşük ve en yüksek parametre aralığında olup olmadığını denetler. Bu koşul yönteminin Canlı tanıtımını gözden geçirin. koşul öğesi aşağıdaki parametreleri destekler:
Parametre | Zorunlu | Açıklama |
---|---|---|
En Büyük | Yes | Girilebilen karakter sayısı üst sınırı. |
Minimum | Yes | Girilmesi gereken en az karakter sayısı. |
Aşağıdaki örnekte, parametreleriyle Minimum
Maximum
ve dizenin uzunluk aralığını belirten bir IsLengthRange yöntemi gösterilmektedir:
<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 yöntemi, bir dize talep değerinin normal ifadeyle eşleşip eşleşmediğini denetler. Bu koşul yönteminin Canlı tanıtımını gözden geçirin. koşul öğesi aşağıdaki parametreleri destekler:
Parametre | Zorunlu | Açıklama |
---|---|---|
RegularExpression | Yes | Eşleşecek normal ifade deseni. |
Aşağıdaki örnekte, normal ifadeyi MatchesRegex
belirten parametresine RegularExpression
sahip bir yöntem gösterilmektedir:
<Predicate Id="PIN" Method="MatchesRegex" HelpText="The password must be numbers only.">
<Parameters>
<Parameter Id="RegularExpression">^[0-9]+$</Parameter>
</Parameters>
</Predicate>
IncludesCharacters
IncludesCharacters yöntemi, bir dize talep değerinin karakter kümesi içerip içermediğini denetler. Bu koşul yönteminin Canlı tanıtımını gözden geçirin. koşul öğesi aşağıdaki parametreleri destekler:
Parametre | Zorunlu | Açıklama |
---|---|---|
Characterset | Yes | Girilebilen karakter kümesi. Örneğin, küçük harf karakterler a-z , büyük harf karakterler A-Z , basamaklar 0-9 veya gibi @#$%^&*\-_+=[]{}|\\:',?/~"();! bir simge listesi. |
Aşağıdaki örnekte, karakter kümesini belirten parametresine CharacterSet
sahip bir IncludesCharacters
yöntem gösterilmektedir:
<Predicate Id="Lowercase" Method="IncludesCharacters" HelpText="a lowercase letter">
<Parameters>
<Parameter Id="CharacterSet">a-z</Parameter>
</Parameters>
</Predicate>
IsDateRange
IsDateRange yöntemi, tarih talep değerinin belirtilen en düşük ve en yüksek parametre aralığı arasında olup olmadığını denetler. Bu koşul yönteminin Canlı tanıtımını gözden geçirin. koşul öğesi aşağıdaki parametreleri destekler:
Parametre | Zorunlu | Açıklama |
---|---|---|
En Büyük | Yes | Girilebilen en büyük olası tarih. Tarihin biçimi kural veya Today şeklindediryyyy-mm-dd . |
Minimum | Yes | Girilebilen en küçük olası tarih. Tarihin biçimi kural veya Today şeklindediryyyy-mm-dd . |
Aşağıdaki örnekte, ve biçiminde tarih aralığını belirten ve parametreleriyle Maximum
Minimum
bir yöntem gösterilmektedir IsDateRange
yyyy-mm-dd
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>
PredicateValidations
Koşul, bir talep türüne karşı denetlenecek doğrulamayı tanımlarken, PredicateValidations bir talep türüne uygulanabilecek bir kullanıcı girişi doğrulaması oluşturmak için bir dizi koşulu gruplandırmaktadır. Her PredicateValidation öğesi, bir Koşula işaret eden bir Dizi PredicateReference öğesi içeren bir PredicateGroup öğeleri kümesi içerir. Doğrulamayı geçirmek için, talebin değeri tüm PredicateGroup'un altında herhangi bir koşulun tüm testlerini PredicateReference öğeleri kümesiyle geçirmelidir.
PredicateValidations öğesi, BuildingBlocks öğesindeki Predicates öğesinin hemen ardından görünmelidir.
<PredicateValidations>
<PredicateValidation Id="">
<PredicateGroups>
<PredicateGroup Id="">
<UserHelpText></UserHelpText>
<PredicateReferences MatchAtLeast="">
<PredicateReference Id="" />
...
</PredicateReferences>
</PredicateGroup>
...
</PredicateGroups>
</PredicateValidation>
...
</PredicateValidations>
PredicateValidations öğesi aşağıdaki öğeyi içerir:
Öğe | Oluşum | Açıklama |
---|---|---|
PredicateValidation | 1:n | Koşul doğrulama listesi. |
PredicateValidation öğesi aşağıdaki özniteliği içerir:
Öznitelik | Zorunlu | Açıklama |
---|---|---|
Kimlik | Yes | Koşul doğrulaması için kullanılan bir tanımlayıcı. ClaimType öğesi ilkede bu tanımlayıcıyı kullanabilir. |
PredicateValidation öğesi aşağıdaki öğeyi içerir:
Öğe | Oluşum | Açıklama |
---|---|---|
PredicateGroups | 1:n | Koşul gruplarının listesi. |
PredicateGroups öğesi aşağıdaki öğeyi içerir:
Öğe | Oluşum | Açıklama |
---|---|---|
PredicateGroup | 1:n | Koşul listesi. |
PredicateGroup öğesi aşağıdaki özniteliği içerir:
Öznitelik | Zorunlu | Açıklama |
---|---|---|
Kimlik | Yes | Koşul grubu için kullanılan tanımlayıcı. |
PredicateGroup öğesi aşağıdaki öğeleri içerir:
Öğe | Oluşum | Açıklama |
---|---|---|
UserHelpText | 0:1 | Koşul açıklaması, kullanıcıların yazmaları gereken değeri bilmelerine yardımcı olabilir. |
PredicateReferences | 1:n | Koşul başvurularının listesi. |
PredicateReferences öğesi aşağıdaki öznitelikleri içerir:
Öznitelik | Zorunlu | Açıklama |
---|---|---|
MatchAtLeast | Hayır | Değerin, girişin kabul edilmesi için en az bu sayıda koşul tanımıyla eşleşmesi gerektiğini belirtir. Belirtilmezse, değerin tüm koşul tanımlarıyla eşleşmesi gerekir. |
PredicateReferences öğesi aşağıdaki öğeleri içerir:
Öğe | Oluşum | Açıklama |
---|---|---|
PredicateReference | 1:n | Bir koşula başvuru. |
PredicateReference öğesi aşağıdaki öznitelikleri içerir:
Öznitelik | Zorunlu | Açıklama |
---|---|---|
Kimlik | Yes | Koşul doğrulaması için kullanılan bir tanımlayıcı. |
Parola karmaşıklığını yapılandırma
Predicates ve PredicateValidationsInput ile hesap oluştururken kullanıcı tarafından sağlanan parolaların karmaşıklık gereksinimlerini denetleyebilirsiniz. Azure AD B2C varsayılan olarak güçlü parolalar kullanır. Azure AD B2C, müşterilerin kullanabileceği parolaların karmaşıklığını denetlemek için yapılandırma seçeneklerini de destekler. Şu koşul öğelerini kullanarak parola karmaşıklığını tanımlayabilirsiniz:
- Yöntemini kullanan
IsLengthRange
IsLengthBetween8And64, parolanın 8 ile 64 karakter arasında olması gerektiğini doğrular. - yöntemini kullanarak küçük harfle
IncludesCharacters
, parolanın küçük harf içerdiğini doğrular. - yöntemini kullanarak
IncludesCharacters
büyük harf, parolanın büyük harf içerdiğini doğrular. - yöntemini kullanan
IncludesCharacters
sayı, parolanın bir basamak içerdiğini doğrular. - yöntemini kullanan
IncludesCharacters
sembol, parolanın çeşitli sembol karakterlerinden birini içerdiğini doğrular. - yöntemini kullanarak
MatchesRegex
PIN, parolanın yalnızca sayı içerdiğini doğrular. - yöntemini kullanan
MatchesRegex
AllowedAADCharacters, parolanın yalnızca geçersiz karakterin sağlandığını doğrular. - yöntemini kullanan
MatchesRegex
DisallowedWhitespace, parolanın bir boşluk karakteriyle başlamadığını veya bitmediğini doğrular.
<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>
Temel doğrulamaları tanımladıktan sonra, bunları birleştirebilir ve ilkenizde kullanabileceğiniz bir dizi parola ilkesi oluşturabilirsiniz:
- SimplePassword ; DisallowedWhitespace, AllowedAADCharacters ve IsLengthBetween8And64 değerlerini doğrular
- StrongPassword , DisallowedWhitespace, AllowedAADCharacters, IsLengthBetween8And64 değerini doğrular. Son grup
CharacterClasses
, 3 olarak ayarlanmış ek bir koşulMatchAtLeast
kümesi çalıştırır. Kullanıcı parolası 8 ile 16 karakter arasında olmalı ve şu karakterlerden üçünü içermelidir: Küçük Harf, Büyük Harf, Sayı veya Simge. - CustomPassword yalnızca DisallowedWhitespace, AllowedAADCharacters'ı doğrular. Bu nedenle, karakterler geçerli olduğu sürece kullanıcı herhangi bir uzunlukta parola sağlayabilir.
<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>
Talep türünüze PredicateValidationReference öğesini ekleyin ve tanımlayıcıyı SimplePassword, StrongPassword veya CustomPassword gibi koşul doğrulamalarından biri olarak belirtin.
<ClaimType Id="password">
<DisplayName>Password</DisplayName>
<DataType>string</DataType>
<AdminHelpText>Enter password</AdminHelpText>
<UserHelpText>Enter password</UserHelpText>
<UserInputType>Password</UserInputType>
<PredicateValidationReference Id="StrongPassword" />
</ClaimType>
Azure AD B2C hata iletisini görüntülerken öğelerin nasıl düzenlendiğinden aşağıdakiler gösterilmektedir:
Tarih aralığını yapılandırma
Predicates ve PredicateValidations öğeleriyle, kullanarak DateTimeDropdown
UserInputType'ın en düşük ve en yüksek tarih değerlerini denetleyebilirsiniz. Bunu yapmak için yöntemiyle IsDateRange
bir Koşul oluşturun ve en düşük ve en yüksek parametreleri sağlayın.
<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>
Koşula başvuru DateRange
içeren bir PredicateValidation ekleyin.
<PredicateValidations>
<PredicateValidation Id="CustomDateRange">
<PredicateGroups>
<PredicateGroup Id="DateRangeGroup">
<PredicateReferences>
<PredicateReference Id="DateRange" />
</PredicateReferences>
</PredicateGroup>
</PredicateGroups>
</PredicateValidation>
</PredicateValidations>
Talep türünüze PredicateValidationReference öğesini ekleyin ve tanımlayıcıyı olarak CustomDateRange
belirtin.
<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>
Sonraki adımlar
- Koşul doğrulamalarını kullanarak Azure Active Directory B2C'de özel ilkeler kullanarak parola karmaşıklığını yapılandırmayı öğrenin.