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:
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="(?<=.).(?=.*@)">*</Mask>
<UserInputType>Readonly</UserInputType>
</ClaimType>
Platforma obsługi tożsamości renderuje tylko pierwszą literę adresu e-mail i nazwę domeny e-mail:
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 , Prepend lub 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 CheckboxMultiSelect
obiekcie , DropdownSingleSelect
lub 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:
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.+!#$%&'+^_`{}~-]+(?:\.[a-zA-Z0-9!#$%&'+^_`{}~-]+)*@(?:[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:
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.
<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.
<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.+!#$%&'+^_`{}~-]+(?:\.[a-zA-Z0-9!#$%&'+^_`{}~-]+)*@(?:[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.
<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.
<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.
<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>
Lista rozwijanaWybierz
Typ danych wejściowych użytkownika DropdownSingleSelect służy do udostępniania pola rozwijanego, które umożliwia użytkownikowi wybranie jednej opcji.
<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.
<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.
<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
).
<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>