Share via


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

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

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 Todayvagy 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 Todayvagy 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 Todaya 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ó IncludesCharacterskisbetű ellenőrzi, hogy a jelszó kisbetűt tartalmaz-e.
  • A metódust használó IncludesCharactersnagybetű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ó MatchesRegexAllowedAADCharacters 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">@#$%^&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ő 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észletet MatchAtLeast 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:

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

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