Megosztás a következőn keresztül:


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 és predikátumérvényesítések kapcsolatát bemutató diagram

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-9vagy szimbólumok listája, például @#$%^&amp;*\-_+=[]{}|\\:',?/~"();!.

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 MaximumMinimum, amely a dátumtartományt yyyy-mm-ddTodayé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">@#$%^&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>

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-ra MatchAtLeast á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:

Példa a predikátum és a PredicateGroup jelszó összetettségére

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