Udostępnij za pośrednictwem


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żywanie wbudowanych przepływów użytkownika. Jeśli nie zostało to zrobione, dowiedz się więcej o niestandardowym pakiecie 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>

Typ oświadczenia

Element ClaimType zawiera następujący atrybut:

Atrybut Wymagania 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
DisplayName 1:1 Tytuł wyświetlany użytkownikom na różnych ekranach. Wartość może być zlokalizowana.
DataType 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ć domyślną nazwę 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że być zlokalizowana.
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że być zlokalizowana.
PredykateValidationReference 0:1 Odwołanie do elementu PredicateValidationsInput . Elementy PredicateValidationReference umożliwiają przeprowadzenie procesu weryfikacji, aby upewnić się, że wprowadzono tylko prawidłowo sformułowane dane. Aby uzyskać więcej informacji, zobacz Predykaty.

DataType

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

Type 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, zwykle 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 wystawiona jako oświadczenie do tokenu.
czas trwania Reprezentuje przedział czasu w latach, miesiącach, dniach, godzinach, minutach i sekundach. Format to PnYnMnDTnHnMnS, gdzie P wskazuje wartość dodatnią lub N dla wartości ujemnej. 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 2147 483 647
długi Reprezentuje liczbę z zakresu od -9 223 372 036 854 775 808 do 923 372 036 854 775 807
string 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 Wymagania opis
Nazwa/nazwisko Tak Nazwa prawidłowego protokołu obsługiwanego przez usługę 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 związku z tym token JWT wystawiony przez usługę Azure AD B2C emituje family_name zamiast nazwy ClaimType.

{
  "sub": "aaaaaaaa-0000-1111-2222-bbbbbbbbbbbb",
  "auth_time": 1535013501,
  "given_name": "David",
  "family_name": "Williams",
  "name": "David Williams",
}

Maska

Element Mask zawiera następujące atrybuty:

Atrybut Wymagania 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 , opcjonalny atrybut musi być również zdefiniowany z wyrażeniem regularnym do użycia.
Regex Nie. Jeśli Type ustawiono wartość Regex, określ wyrażenie regularne do użycia.

Poniższy przykład umożliwia skonfigurowanie oświadczenia 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 Identity Experience Framework renderuje numer telefonu podczas ukrywania pierwszych sześciu cyfr:

Oświadczenie numeru telefonu wyświetlane w przeglądarce z pierwszymi sześcioma 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 regularnej.

<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 Identity Experience Framework renderuje tylko pierwszą literę adresu e-mail i nazwę domeny poczty e-mail:

Oświadczenie e-mail wyświetlane w przeglądarce z znakami zamaskowanych gwiazdkami

Ograniczenie

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

Atrybut Wymagania opis
MergeBehavior Nie. Metoda używana do scalania wartości wyliczenia z właściwością ClaimType w zasadach nadrzędnych z tym samym identyfikatorem. Użyj tego atrybutu podczas zastępowania oświadczenia określonego w zasadach podstawowych. Możliwe wartości: Append, lub PrependReplaceAll. Wartość Append jest kolekcją danych, które powinny zostać dołączone na końcu kolekcji określonej w zasadach nadrzędnych. Wartość Prepend jest kolekcją 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
Wyliczanie 1:n Dostępne opcje w interfejsie użytkownika do wybrania dla oświadczenia, takie jak wartość na liście rozwijanej.
Wzorzec 1:1 Wyrażenie regularne do użycia.

Wyliczanie

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 zlokalizować dostępne opcje za pomocą elementu LocalizedCollections . Aby wyszukać element z kolekcji wyliczenia oświadczeń, użyj przekształcenia oświadczeń GetMappedValueFromLocalizedCollection.

Element Wyliczenie zawiera następujące atrybuty:

Atrybut Wymagania 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 Yorkwartość . 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 wyświetlana wartość domyślna

Wzorzec

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

Atrybut Wymagania opis
RegularExpression Tak Wyrażenie regularne, które oświadczenia tego typu muszą być zgodne, aby było prawidłowe.
Tekst pomocy Nie. Komunikat o błędzie dla użytkowników, jeśli sprawdzanie wyrażenia regularnego kończy się niepowodzeniem.

W poniższym przykładzie skonfigurowaliśmy oświadczenie e-mail z walidacją 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 Identity Experience Framework 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żeń regularnych

UserInputType

Usługa 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. Typ UserInputType należy określić 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.

Dostępny typ danych wejściowych użytkownika elementu UserInputType :

UserInputType Obsługiwany typ oświadczenia opis
CheckboxMultiSelect string Pole listy rozwijanej wielokrotnego wyboru. 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 wyboru pojedynczego. Wartość oświadczenia jest wybraną wartością.
EmailBox string Pole wprowadzania wiadomości e-mail.
Akapit boolean, date, , dateTime, duration, int, , longstring Pole, które wyświetla tekst tylko w tagu akapitu.
Hasło string Pole tekstowe Hasła.
RadioSingleSelect string Kolekcja przycisków radiowych. Wartość oświadczenia jest wybraną wartością.
Tylko do odczytu boolean, date, , dateTime, duration, int, , longstring Pole tekstowe tylko do odczytu.
TextBox boolean, , int, , phoneNumberstring Jednowierszowe pole tekstowe.

TextBox

Typ danych wejściowych 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 podawania 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 danych wejściowych użytkownika Password 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. Możesz użyć elementów Predykates i PredicateValidations, aby kontrolować minimalne i maksymalne wartości dat. Aby uzyskać więcej informacji, zobacz sekcję Konfigurowanie zakresu dat predykató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 przyciskiem 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>

CheckboxMultiSelect

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>

Tylko do odczytu

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>

Akapit

Typ danych wejściowych użytkownika Akapit służy do podawania pola zawierającego tekst tylko w tagu akapitu. Na przykład <p>text</p>. Typ OutputClaim danych wejściowych użytkownika akapitu samodzielnego profilu technicznego musi ustawić atrybut false (wartość domyślnaRequired). Ten typ danych wejściowych użytkownika jest obsługiwany tylko w układach stron samodzielnie asertywne. Ujednolicone strony logowania i rejestracji (unifiedssp) mogą nie wyświetlać tego poprawnie.

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>