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:
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="(?<=.).(?=.*@)">*</Mask>
<UserInputType>Readonly</UserInputType>
</ClaimType>
Platforma Identity Experience Framework renderuje tylko pierwszą literę adresu e-mail i nazwę domeny poczty e-mail:
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 Prepend ReplaceAll . 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 CheckboxMultiSelect
obiekcie , DropdownSingleSelect
lub 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 York
wartość . 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:
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.+!#$%&'+^_`{}~-]+(?:\.[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 Identity Experience Framework renderuje oświadczenie adresu e-mail z walidacją danych wejściowych w formacie poczty e-mail:
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 , , long string |
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 , , long string |
Pole tekstowe tylko do odczytu. |
TextBox | boolean , , int , , phoneNumber string |
Jednowierszowe pole tekstowe. |
TextBox
Typ danych wejściowych 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 podawania 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 danych wejściowych użytkownika Password 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. 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.
<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>
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.
<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.
<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.
<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>