ClaimsSchema

Uwaga

W usłudze Azure Active Directory B2C zasady niestandardowe są przeznaczone głównie do rozwiązywania złożonych scenariuszy. W przypadku większości scenariuszy zalecamy użycie wbudowanych przepływów użytkownika. Jeśli to nie zrobiono, zapoznaj się z niestandardowym pakietem startowym zasad w temacie Wprowadzenie do zasad niestandardowych w usłudze Active Directory B2C.

Element ClaimsSchema definiuje typy oświadczeń, do których można odwoływać się w ramach zasad. Schemat oświadczeń to miejsce, gdzie deklarujesz oświadczenia. Oświadczenie może być imię, nazwisko, nazwa wyświetlana, numer telefonu i inne. ClaimsSchema, element zawiera listę elementów ClaimType . Element ClaimType zawiera atrybut Id , który jest nazwą oświadczenia.

<BuildingBlocks>
  <ClaimsSchema>
    <ClaimType Id="Id">
      <DisplayName>Surname</DisplayName>
      <DataType>string</DataType>
      <DefaultPartnerClaimTypes>
        <Protocol Name="OAuth2" PartnerClaimType="family_name" />
        <Protocol Name="OpenIdConnect" PartnerClaimType="family_name" />
        <Protocol Name="SAML2" PartnerClaimType="http://schemas.xmlsoap.org/ws/2005/05/identity/claims/surname" />
      </DefaultPartnerClaimTypes>
      <UserHelpText>Your surname (also known as family name or last name).</UserHelpText>
      <UserInputType>TextBox</UserInputType>

Claimtype

Element ClaimType zawiera następujący atrybut:

Atrybut Wymagane Opis
Id Tak Identyfikator używany dla typu oświadczenia. Inne elementy mogą używać tego identyfikatora w zasadach.

Element ClaimType zawiera następujące elementy:

Element Wystąpień Opis
Nazwa wyświetlana 1:1 Tytuł wyświetlany użytkownikom na różnych ekranach. Wartość można lokalizować.
typ_danych 1:1 Typ oświadczenia.
DefaultPartnerClaimTypes 0:1 Domyślne typy oświadczeń partnera do użycia dla określonego protokołu. Wartość można zastąpić w typie PartnerClaimType określonym w elementach InputClaim lub OutputClaim . Użyj tego elementu, aby określić nazwę domyślną protokołu.
Maska 0:1 Opcjonalny ciąg znaków maskowania, które można zastosować podczas wyświetlania oświadczenia. Na przykład numer telefonu 324-232-4343 może być maskowany jako XXX-XXX-4343.
UserHelpText 0:1 Opis typu oświadczenia, który może być przydatny dla użytkowników, aby zrozumieć jego przeznaczenie. Wartość można lokalizować.
UserInputType 0:1 Typ kontrolki wejściowej, która powinna być dostępna dla użytkownika podczas ręcznego wprowadzania danych oświadczeń dla typu oświadczenia. Zobacz typy danych wejściowych użytkownika zdefiniowane w dalszej części tej strony.
AdminHelpText 0:1 Opis typu oświadczenia, który może być przydatny dla administratorów, aby zrozumieć jego przeznaczenie.
Ograniczenie 0:1 Ograniczenia wartości dla tego oświadczenia, takie jak wyrażenie regularne (Regex) lub lista dopuszczalnych wartości. Wartość można lokalizować.
PredykateValidationReference 0:1 Odwołanie do elementu PredicateValidationsInput . Elementy PredicateValidationReference umożliwiają przeprowadzenie procesu weryfikacji w celu zapewnienia, że wprowadzono tylko prawidłowo sformułowane dane. Aby uzyskać więcej informacji, zobacz Predykaty.

typ_danych

Element DataType obsługuje następujące wartości:

Typ Opis
boolean Reprezentuje wartość logiczną (true lub false).
data Reprezentuje moment w czasie, zwykle wyrażony jako data dnia. Wartość daty jest zgodna z konwencją ISO 8601.
Data i godzina Reprezentuje moment w czasie, zazwyczaj wyrażony jako data i godzina dnia. Wartość daty jest zgodna z konwencją ISO 8601 podczas wykonywania i jest konwertowana na czas epoki SYSTEMU UNIX, gdy jest wystawiona jako oświadczenie do tokenu.
czas trwania Reprezentuje interwał czasu w latach, miesiącach, dniach, godzinach, minutach i sekundach. Format to PnYnMnDTnHnMnS, gdzie P wskazuje wartość dodatnią lub N ujemną. nY to liczba lat, po których następuje literał Y. nMo to liczba miesięcy, po których następuje literał Mo. nD to liczba dni, po których następuje literał D. Przykłady: P21Y reprezentuje 21 lat. P1Y2Mo reprezentuje jeden rok i dwa miesiące. P1Y2Mo5D reprezentuje jeden rok, dwa miesiące i pięć dni. P1Y2M5DT8H5M20S reprezentuje jeden rok, dwa miesiące, pięć dni, osiem godzin, pięć minut i dwadzieścia sekund.
phoneNumber Reprezentuje numer telefonu.
int Reprezentuje liczbę z zakresu od -2 147 483 648 do 2 147 483 647
długi Reprezentuje liczbę z zakresu od -9 223 372 036 854 775 808 do 9 223 372 036 854 775 807
ciąg Reprezentuje tekst jako sekwencję jednostek kodu UTF-16.
Stringcollection Reprezentuje kolekcję .string
userIdentity Reprezentuje tożsamość użytkownika.
userIdentityCollection Reprezentuje kolekcję .userIdentity

DefaultPartnerClaimTypes

Typ DefaultPartnerClaimTypes może zawierać następujący element:

Element Wystąpień Opis
Protokół 1:n Lista protokołów z domyślną nazwą typu oświadczenia partnera.

Element Protocol zawiera następujące atrybuty:

Atrybut Wymagane Opis
Nazwa Tak Nazwa prawidłowego protokołu obsługiwanego przez Azure AD B2C. Możliwe wartości to: OAuth1, OAuth2, SAML2, OpenIdConnect.
PartnerClaimType Tak Nazwa typu oświadczenia do użycia.

W poniższym przykładzie, gdy platforma Identity Experience Framework współdziała z dostawcą tożsamości SAML2 lub aplikacją jednostki uzależnionej, oświadczenie o nazwisku jest mapowane na http://schemas.xmlsoap.org/ws/2005/05/identity/claims/surname, z openIdConnect i OAuth2 oświadczenie jest mapowane na family_name.

<ClaimType Id="surname">
  <DisplayName>Surname</DisplayName>
  <DataType>string</DataType>
  <DefaultPartnerClaimTypes>
    <Protocol Name="OAuth2" PartnerClaimType="family_name" />
    <Protocol Name="OpenIdConnect" PartnerClaimType="family_name" />
    <Protocol Name="SAML2" PartnerClaimType="http://schemas.xmlsoap.org/ws/2005/05/identity/claims/surname" />
  </DefaultPartnerClaimTypes>
</ClaimType>

W rezultacie token JWT wystawiony przez Azure AD B2C emituje family_name zamiast nazwy ClaimType nazwisko.

{
  "sub": "6fbbd70d-262b-4b50-804c-257ae1706ef2",
  "auth_time": 1535013501,
  "given_name": "David",
  "family_name": "Williams",
  "name": "David Williams",
}

Maska

Element Maska zawiera następujące atrybuty:

Atrybut Wymagane Opis
Type Tak Typ maski oświadczenia. Możliwe wartości: Simple lub Regex. Wartość Simple wskazuje, że prosta maska tekstowa jest stosowana do wiodącej części oświadczenia ciągu. Wartość Regex wskazuje, że wyrażenie regularne jest stosowane do oświadczenia ciągu jako całości. Jeśli wartość jest określona Regex , należy również zdefiniować opcjonalny atrybut z wyrażeniem regularnym do użycia.
Regex Nie Jeśli Type jest ustawiona wartość Regex, określ wyrażenie regularne do użycia.

Poniższy przykład konfiguruje oświadczenie PhoneNumber z maską Simple . Aby uzyskać więcej przykładów, zapoznaj się z pokazem oświadczenia prostej maski na żywo.

<ClaimType Id="PhoneNumber">
  <DisplayName>Phone Number</DisplayName>
  <DataType>string</DataType>
  <Mask Type="Simple">XXX-XXX-</Mask>
  <UserHelpText>Your telephone number.</UserHelpText>
</ClaimType>

Platforma obsługi tożsamości renderuje numer telefonu, ukrywając pierwsze sześć cyfr:

Oświadczenie numeru telefonu wyświetlane w przeglądarce z sześcioma pierwszymi cyframi zamaskowane przez Xs

Poniższy przykład konfiguruje oświadczenie AlternateEmail z maską Regex . Aby uzyskać więcej przykładów, zapoznaj się z pokazem na żywo maski regex.

<ClaimType Id="AlternateEmail">
  <DisplayName>Please verify the secondary email linked to your account</DisplayName>
  <DataType>string</DataType>
  <Mask Type="Regex" Regex="(?&lt;=.).(?=.*@)">*</Mask>
  <UserInputType>Readonly</UserInputType>
</ClaimType>

Platforma obsługi tożsamości renderuje tylko pierwszą literę adresu e-mail i nazwę domeny e-mail:

Email oświadczenie wyświetlane w przeglądarce z znakami zamaskowaną gwiazdką

Ograniczenie

Element Ograniczenie może zawierać następujący atrybut:

Atrybut Wymagane Opis
Scalbehavior Nie Metoda używana do scalania wartości wyliczenia z właściwością ClaimType w zasadach nadrzędnych o tym samym identyfikatorze. Użyj tego atrybutu podczas zastępowania oświadczenia określonego w zasadach podstawowych. Możliwe wartości: Append, Prependlub ReplaceAll. Wartość Append to kolekcja danych, które powinny zostać dołączone na końcu kolekcji określonej w zasadach nadrzędnych. Wartość Prepend to kolekcja danych, które należy dodać przed kolekcją określoną w zasadach nadrzędnych. Wartość ReplaceAll jest kolekcją danych określonych w zasadach nadrzędnych, które powinny być ignorowane.

Element Ograniczenie zawiera następujące elementy:

Element Wystąpień Opis
Wyliczenie 1:n Dostępne opcje w interfejsie użytkownika do wybrania dla oświadczenia, takie jak wartość na liście rozwijanej.
Wzorce 1:1 Wyrażenie regularne do użycia.

Wyliczenie

Element Wyliczenie definiuje dostępne opcje dla użytkownika do wybrania oświadczenia w interfejsie użytkownika, takie jak wartość w CheckboxMultiSelectobiekcie , DropdownSingleSelectlub RadioSingleSelect. Alternatywnie można zdefiniować i lokalizować dostępne opcje za pomocą elementu LocalizedCollections . Aby wyszukać element z kolekcji wyliczenia oświadczeń, użyj przekształcenia oświadczeń GetMappedValueFromLocalizedCollection .

Element Wyliczenia zawiera następujące atrybuty:

Atrybut Wymagane Opis
Tekst Tak Ciąg wyświetlany użytkownikowi w interfejsie użytkownika dla tej opcji.
Wartość Tak Wartość oświadczenia skojarzona z wybraniem tej opcji.
Wybierz pozycjęByDefault Nie Wskazuje, czy ta opcja powinna być domyślnie wybrana w interfejsie użytkownika. Możliwe wartości: Prawda lub Fałsz.

Poniższy przykład umożliwia skonfigurowanie oświadczenia listy rozwijanej miasta z wartością domyślną ustawioną na New York. Aby uzyskać więcej przykładów, zapoznaj się z pokazem na żywo wyliczenia ograniczeń oświadczeń.

<ClaimType Id="city">
  <DisplayName>city where you work</DisplayName>
  <DataType>string</DataType>
  <UserInputType>DropdownSingleSelect</UserInputType>
  <Restriction>
    <Enumeration Text="Bellevue" Value="bellevue" SelectByDefault="false" />
    <Enumeration Text="Redmond" Value="redmond" SelectByDefault="false" />
    <Enumeration Text="New York" Value="new-york" SelectByDefault="true" />
  </Restriction>
</ClaimType>

Lista rozwijana z wartością domyślną ustawioną na Nowy Jork:

Kontrolka listy rozwijanej renderowana w przeglądarce i pokazująca wartość domyślną

Wzorce

Element Pattern może zawierać następujące atrybuty:

Atrybut Wymagane Opis
RegularExpression Tak Wyrażenie regularne, które oświadczenia tego typu musi być zgodne, aby było prawidłowe.
Helptext Nie Komunikat o błędzie dla użytkowników, jeśli sprawdzanie wyrażenia regularnego nie powiedzie się.

Poniższy przykład umożliwia skonfigurowanie oświadczenia e-mail z weryfikacją danych wejściowych wyrażeń regularnych i tekstem pomocy:

<ClaimType Id="email">
  <DisplayName>Email Address</DisplayName>
  <DataType>string</DataType>
  <DefaultPartnerClaimTypes>
  <Protocol Name="OpenIdConnect" PartnerClaimType="email" />
  </DefaultPartnerClaimTypes>
  <UserHelpText>Email address that can be used to contact you.</UserHelpText>
  <UserInputType>TextBox</UserInputType>
  <Restriction>
    <Pattern RegularExpression="^[a-zA-Z0-9.+!#$%&amp;'+^_`{}~-]+(?:\.[a-zA-Z0-9!#$%&amp;'+^_`{}~-]+)*@(?:[a-zA-Z0-9](?:[a-zA-Z0-9-]*[a-zA-Z0-9])?\.)+[a-zA-Z0-9](?:[a-zA-Z0-9-]*[a-zA-Z0-9])?$" HelpText="Please enter a valid email address." />
  </Restriction>
</ClaimType>

Platforma obsługi tożsamości renderuje oświadczenie adresu e-mail z walidacją danych wejściowych w formacie poczty e-mail:

Pole tekstowe z komunikatem o błędzie wyzwalanym przez ograniczenie wyrażenia regularnego

UserInputType

Azure AD B2C obsługuje różne typy danych wejściowych użytkownika, takie jak pole tekstowe, hasło i lista rozwijana, które mogą być używane podczas ręcznego wprowadzania danych oświadczeń dla typu oświadczenia. Należy określić parametr UserInputType podczas zbierania informacji od użytkownika przy użyciu własnego profilu technicznego i kontrolek wyświetlania.

Zapoznaj się z pokazem live typu danych wejściowych użytkownika.

Element UserInputType — dostępne typy danych wejściowych użytkownika:

UserInputType Obsługiwany typ oświadczenia Opis
Pole wyboruMultiSelect string Pole rozwijane wyboru wielokrotnego. Wartość oświadczenia jest reprezentowana w ciągu ogranicznika przecinka wybranych wartości.
DateTimeDropdown date, dateTime Listy rozwijane, aby wybrać dzień, miesiąc i rok.
Lista rozwijanaWybierz string Pole listy rozwijanej wybór pojedynczego. Wartość oświadczenia jest wybraną wartością.
EmailBox string Email pole wejściowe.
Akapitu boolean, date, dateTime, duration, int, long, string Pole, które pokazuje tekst tylko w tagu akapitu.
Hasło string Pole tekstowe Hasło.
RadioSingleSelect string Kolekcja przycisków radiowych. Wartość oświadczenia jest wybraną wartością.
Readonly boolean, date, dateTime, duration, int, long, string Pole tekstowe tylko do odczytu.
TextBox boolean, int, phoneNumber, string Jednowierszowe pole tekstowe.

TextBox

Typ wejściowy użytkownika TextBox służy do udostępniania jednowierszowego pola tekstowego.

Pole tekstowe z właściwościami określonymi w typie oświadczenia

<ClaimType Id="displayName">
  <DisplayName>Display Name</DisplayName>
  <DataType>string</DataType>
  <UserHelpText>Your display name.</UserHelpText>
  <UserInputType>TextBox</UserInputType>
</ClaimType>

EmailBox

Typ danych wejściowych użytkownika EmailBox służy do udostępniania podstawowego pola danych wejściowych poczty e-mail.

EmailBox z właściwościami określonymi w typie oświadczenia

<ClaimType Id="email">
  <DisplayName>Email Address</DisplayName>
  <DataType>string</DataType>
  <UserHelpText>Email address that can be used to contact you.</UserHelpText>
  <UserInputType>EmailBox</UserInputType>
  <Restriction>
    <Pattern RegularExpression="^[a-zA-Z0-9.+!#$%&amp;'+^_`{}~-]+(?:\.[a-zA-Z0-9!#$%&amp;'+^_`{}~-]+)*@(?:[a-zA-Z0-9](?:[a-zA-Z0-9-]*[a-zA-Z0-9])?\.)+[a-zA-Z0-9](?:[a-zA-Z0-9-]*[a-zA-Z0-9])?$" HelpText="Please enter a valid email address." />
  </Restriction>
</ClaimType>

Hasło

Typ wprowadzania hasła użytkownika służy do rejestrowania hasła wprowadzonego przez użytkownika.

Używanie typu oświadczenia z hasłem

<ClaimType Id="password">
  <DisplayName>Password</DisplayName>
  <DataType>string</DataType>
  <UserHelpText>Enter password</UserHelpText>
  <UserInputType>Password</UserInputType>
</ClaimType>

DateTimeDropdown

Typ danych wejściowych użytkownika DateTimeDropdown służy do udostępniania zestawu list rozwijanych do wybierania dnia, miesiąca i roku. Za pomocą elementów Predykates i PredicateValidations można kontrolować wartości daty minimalnej i maksymalnej. Aby uzyskać więcej informacji, zobacz sekcję Konfigurowanie zakresu datpredykatów i predykatówValidations.

Używanie typu oświadczenia z typem datetimedropdown

<ClaimType Id="dateOfBirth">
  <DisplayName>Date Of Birth</DisplayName>
  <DataType>date</DataType>
  <UserHelpText>The date on which you were born.</UserHelpText>
  <UserInputType>DateTimeDropdown</UserInputType>
</ClaimType>

RadioSingleSelect

Typ danych wejściowych użytkownika RadioSingleSelect służy do udostępniania kolekcji przycisków radiowych, które umożliwiają użytkownikowi wybranie jednej opcji.

Używanie typu oświadczenia z radiodsingleselect

<ClaimType Id="color">
  <DisplayName>Preferred color</DisplayName>
  <DataType>string</DataType>
  <UserInputType>RadioSingleSelect</UserInputType>
  <Restriction>
    <Enumeration Text="Blue" Value="Blue" SelectByDefault="false" />
    <Enumeration Text="Green " Value="Green" SelectByDefault="false" />
    <Enumeration Text="Orange" Value="Orange" SelectByDefault="true" />
  </Restriction>
</ClaimType>

Typ danych wejściowych użytkownika DropdownSingleSelect służy do udostępniania pola rozwijanego, które umożliwia użytkownikowi wybranie jednej opcji.

Używanie typu oświadczenia z listami rozwijanymiwybierz

<ClaimType Id="city">
  <DisplayName>City where you work</DisplayName>
  <DataType>string</DataType>
  <UserInputType>DropdownSingleSelect</UserInputType>
  <Restriction>
    <Enumeration Text="Bellevue" Value="bellevue" SelectByDefault="false" />
    <Enumeration Text="Redmond" Value="redmond" SelectByDefault="false" />
    <Enumeration Text="New York" Value="new-york" SelectByDefault="true" />
  </Restriction>
</ClaimType>

Pole wyboruMultiSelect

Pole wyboruMultiWybierz typ danych wejściowych użytkownika służy do udostępniania kolekcji pól wyboru, które umożliwiają użytkownikowi wybranie wielu opcji.

Używanie typu oświadczenia z polem wyborumultiselect

<ClaimType Id="languages">
  <DisplayName>Languages you speak</DisplayName>
  <DataType>string</DataType>
  <UserInputType>CheckboxMultiSelect</UserInputType>
  <Restriction>
    <Enumeration Text="English" Value="English" SelectByDefault="true" />
    <Enumeration Text="France " Value="France" SelectByDefault="false" />
    <Enumeration Text="Spanish" Value="Spanish" SelectByDefault="false" />
  </Restriction>
</ClaimType>

Readonly

Typ danych wejściowych użytkownika readonly służy do udostępniania pola readonly w celu wyświetlenia oświadczenia i wartości.

Używanie typu oświadczenia z funkcją readonly

<ClaimType Id="membershipNumber">
  <DisplayName>Membership number</DisplayName>
  <DataType>string</DataType>
  <UserHelpText>Your membership number (read only)</UserHelpText>
  <UserInputType>Readonly</UserInputType>
</ClaimType>

Akapitu

Typ wejściowy użytkownika Akapit służy do udostępniania pola, które wyświetla tekst tylko w tagu akapitu. Na przykład <tekst< p>/p>. Typ OutputClaim wejściowy użytkownika akapitu profilu technicznego asertywnego musi ustawić atrybut false (wartość domyślnaRequired).

Używanie typu oświadczenia z akapitem

<ClaimType Id="responseMsg">
  <DisplayName>Error message: </DisplayName>
  <DataType>string</DataType>
  <AdminHelpText>A claim responsible for holding response messages to send to the relying party</AdminHelpText>
  <UserHelpText>A claim responsible for holding response messages to send to the relying party</UserHelpText>
  <UserInputType>Paragraph</UserInputType>
</ClaimType>