Aracılığıyla paylaş


Yüklemler ve Yüklem Doğrulamaları

Önemli

1 Mayıs 2025 tarihinden itibaren Azure AD B2C artık yeni müşteriler için satın alınamayacak. SSS bölümünden daha fazla bilgi edinebilirsiniz.

Uyarı

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:

Yüklemler ve Yüklem Doğrulamaları ilişkisini gösteren diyagram

Yüklemler

Predicate öğesi, bir talep türünün değerini kontrol etmek için temel bir doğrulama tanımlar ve veya truedöndürürfalse. Doğrulama, belirtilen bir Yöntem öğesi ve yöntemle ilgili bir dizi Parametre öğesi kullanılarak yapılır. Örneğin, bir koşul, bir dize talep değerinin uzunluğunun belirtilen minimum ve maksimum parametreler aralığında olup olmadığını veya bir dize talep değerinin bir 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 öğesi içindeki ClaimsSchema öğesinin hemen ardından görünmelidir.

Predicates öğesi aşağıdaki öğeyi içerir:

Öğe Oluşum Açıklama
Yüklem 1:n Koşul listesi.

Predicate öğesi aşağıdaki öznitelikleri içerir:

Özellik Gerekli Açıklama
Kimlik Evet Koşul için kullanılan bir tanımlayıcı. Diğer öğeler ilkede bu tanımlayıcıyı kullanabilir.
Yöntem Evet Doğrulama için kullanılacak yöntem türü. Olası değerler: IsLengthRange, MatchesRegex, IncludesCharacters veya IsDateRange.
Yardım Metni Hayı Denetim başarısız olursa kullanıcılar için bir hata mesajı. Bu dize, dil özelleştirmesi kullanılarak yerelleştirilebilir

Predicate öğesi aşağıdaki öğeleri içerir:

Öğe Oluşum Açıklama
Kullanıcı Yardım Metni 0:1 (Kullanım dışı) Denetim başarısız olursa kullanıcılar için bir hata mesajı.
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 Parametrenin tanımlayıcısı.

Yüklem yöntemleri

IsLengthRange

IsLengthRange yöntemi, bir dize talep değerinin uzunluğunun belirtilen minimum ve maksimum parametreler aralığında olup olmadığını denetler. Bu yüklem yönteminin Canlı demosuna göz atın. Yüklem öğesi aşağıdaki parametreleri destekler:

Parametre Gerekli Açıklama
Maksimum Evet Girilebilecek en fazla karakter sayısı.
Asgari Evet Girilmesi gereken en az karakter sayısı.

Aşağıdaki örnek, parametrelerle Minimum birlikte ve Maximum dizenin uzunluk aralığını belirten bir IsLengthRange yöntemini gösterir:

<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>

MaçlarRegex

MatchesRegex yöntemi, bir dize talep değerinin normal bir ifadeyle eşleşip eşleşmediğini denetler. Bu yüklem yönteminin Canlı demosuna göz atın. Yüklem öğesi aşağıdaki parametreleri destekler:

Parametre Gerekli Açıklama
Düzenli İfade Evet Eşleştirilecek normal ifade deseni.

Aşağıdaki örnek, normal bir ifade belirten parametreye MatchesRegex sahip bir RegularExpression yöntemi gösterir:

<Predicate Id="PIN" Method="MatchesRegex" HelpText="The password must be numbers only.">
  <Parameters>
    <Parameter Id="RegularExpression">^[0-9]+$</Parameter>
  </Parameters>
</Predicate>

İçindekilerKarakterler

IncludesCharacters yöntemi, bir dize talep değerinin bir karakter kümesi içerip içermediğini denetler. Bu yüklem yönteminin Canlı demosuna göz atın. Yüklem öğesi aşağıdaki parametreleri destekler:

Parametre Gerekli Açıklama
Karakter Seti Evet Girilebilecek karakter kümesi. Örneğin, küçük harfli karakterler a-z, büyük harfli A-Zkarakterler 0-9, rakamlar veya gibi @#$%^&amp;*\-_+=[]{}|\\:',?/~"();!bir sembol listesi.

Aşağıdaki örnek, karakter kümesini belirten parametreye IncludesCharacters sahip bir CharacterSet yöntemi gösterir:

<Predicate Id="Lowercase" Method="IncludesCharacters" HelpText="a lowercase letter">
  <Parameters>
    <Parameter Id="CharacterSet">a-z</Parameter>
  </Parameters>
</Predicate>

IsDateRange

IsDateRange yöntemi, bir tarih talebi değerinin belirtilen en düşük ve en yüksek parametre aralığı arasında olup olmadığını denetler. Bu yüklem yönteminin Canlı demosuna göz atın. Yüklem öğesi aşağıdaki parametreleri destekler:

Parametre Gerekli Açıklama
Maksimum Evet Girilebilecek mümkün olan en büyük tarih. Tarihin biçimi kurala uyar yyyy-mm-dd veya Today.
Asgari Evet Girilebilecek mümkün olan en küçük tarih. Tarihin biçimi kurala uyar yyyy-mm-dd veya Today.

Aşağıdaki örnek, parametrelere IsDateRange sahip olan ve Minimum tarih aralığını ve Maximumbiçimiyle yyyy-mm-dd belirten bir Today yöntemi gösterir.

<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>

Koşul Doğrulamaları

Koşullar bir talep türünü denetlemek için doğrulamayı tanımlarken, PredicateValidations bir talep türüne uygulanabilecek bir kullanıcı girişi doğrulaması oluşturmak için bir koşul kümesini gruplandırır. Her PredicateValidation öğesi, birPredicate'e işaret eden bir dizi PredicateReference öğesi içeren bir dizi PredicateGroup öğesi içerir. Doğrulamayı geçmek için, talebin değeri, PredicateReference öğeleri kümesiyle birlikte tüm PredicateGroup altındaki herhangi bir koşulun tüm testlerini geçmelidir.

PredicateValidations öğesi, BuildingBlocks öğesinin içindeki 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
Koşul Doğrulaması 1:n Koşul doğrulamasının bir listesi.

PredicateValidation öğesi aşağıdaki özniteliği içerir:

Özellik Gerekli Açıklama
Kimlik Evet 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
Yüklem Grupları 1:n Yüklem gruplarının listesi.

PredicateGroups öğesi aşağıdaki öğeyi içerir:

Öğe Oluşum Açıklama
Yüklem Grubu 1:n Koşul listesi.

PredicateGroup öğesi aşağıdaki özniteliği içerir:

Özellik Gerekli Açıklama
Kimlik Evet Koşul grubu için kullanılan bir tanımlayıcı.

PredicateGroup öğesi aşağıdaki öğeleri içerir:

Öğe Oluşum Açıklama
Kullanıcı Yardım Metni 0:1 Kullanıcıların hangi değeri yazmaları gerektiğini bilmelerine yardımcı olabilecek bir koşul açıklaması.
YüklemBaşvurular 1:n Yüklem başvurularının listesi.

PredicateReferences öğesi aşağıdaki öznitelikleri içerir:

Özellik Gerekli Açıklama
En Azından Eşleştir Hayı Girişin kabul edilebilmesi için değerin en az o kadar 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
Yüklem Başvurusu 1:n Bir yüklem başvurusu.

PredicateReference öğesi aşağıdaki öznitelikleri içerir:

Özellik Gerekli Açıklama
Kimlik Evet Koşul doğrulaması için kullanılan bir tanımlayıcı.

Parola karmaşıklığını yapılandırma

Predicates ve PredicateValidationsInput ile, bir hesap oluştururken bir kullanıcı tarafından sağlanan parolalar için karmaşıklık gereksinimlerini denetleyebilirsiniz. Varsayılan olarak, Azure AD B2C 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. Bu koşul öğelerini kullanarak parola karmaşıklığını tanımlayabilirsiniz:

  • IsLengthBetween8And64 yöntemini kullanarak IsLengthRange , parolanın 8 ile 64 karakter arasında olması gerektiğini doğrular.
  • Yöntemi kullanan IncludesCharacters, parolanın küçük harf içerdiğini doğrular.
  • Yöntemi kullanan IncludesCharacters, parolanın büyük harf içerdiğini doğrular.
  • Yöntemi kullanan IncludesCharacters sayı, parolanın bir rakam içerdiğini doğrular.
  • Symbol yöntemini kullanarak IncludesCharacters , parolanın birkaç sembol karakterinden birini içerdiğini doğrular.
  • Yöntemini kullanan MatchesRegex PIN, parolanın yalnızca sayılar içerdiğini doğrular.
  • AllowedAADCharacters yöntemini kullanarak MatchesRegex , parolanın yalnızca geçersiz karakterin sağlandığını doğrular.
  • DisallowedWhitespace yöntemini kullanarak MatchesRegex , parolanın 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">@#$%^&amp;*\-_+=[]{}|\\:',.?/`~"();!</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@#$%^&amp;*\-_+=[\]{}|\\:',?/`~"();! ]|(\.(?!@)))+$)|(^$)</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ı bir araya getirebilir ve ilkenizde kullanabileceğiniz bir dizi parola ilkesi oluşturabilirsiniz:

  • SimplePassword , DisallowedWhitespace, AllowedAADCharacters ve IsLengthBetween8And64 değerlerini doğrular
  • StrongPassword , DisallowedWhitespace, AllowedAADCharacters, IsLengthBetween8And64 değerlerini doğrular. Son grup CharacterClasses , 3 olarak MatchAtLeast ayarlanmış ek bir koşul kümesi çalıştırır. Kullanıcı parolası 8 ile 16 karakter arasında olmalı ve şu karakterlerden üçü olmalıdır: Küçük Harf, Büyük Harf, Sayı veya Simge.
  • CustomPassword yalnızca DisallowedWhitespace, AllowedAADCharacters'ı doğrular. Böylece, karakterli karakterler geçerli olduğu sürece kullanıcı herhangi bir uzunlukta herhangi bir şifre 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üzde 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>

Aşağıda, Azure AD B2C hata iletisini görüntülediğinde öğelerin nasıl düzenlendiği gösterilmektedir:

Yüklem Diyagramı ve PredicateGroup parola karmaşıklığı örneği

Bir tarih aralığı yapılandırın

Predicates ve PredicateValidations öğeleriyle, UserInputType öğesinin minimum ve maksimum tarih değerlerini bir DateTimeDropdownkullanarak denetleyebilirsiniz. Bunu yapmak için, yöntemiyle bir KoşulIsDateRange oluşturun ve minimum ve maksimum 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 içeren bir DateRange ekleyin.

<PredicateValidations>
  <PredicateValidation Id="CustomDateRange">
    <PredicateGroups>
      <PredicateGroup Id="DateRangeGroup">
        <PredicateReferences>
          <PredicateReference Id="DateRange" />
        </PredicateReferences>
      </PredicateGroup>
    </PredicateGroups>
  </PredicateValidation>
</PredicateValidations>

Talep türünüzde PredicateValidationReference öğesini ekleyin ve tanımlayıcıyı olarak CustomDateRangebelirtin.

<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