ClaimsSchema

Anteckning

I Azure Active Directory B2C är anpassade principer främst utformade för att hantera komplexa scenarier. I de flesta scenarier rekommenderar vi att du använder inbyggda användarflöden. Om du inte har gjort det kan du läsa mer om startpaketet för anpassad princip i Kom igång med anpassade principer i Active Directory B2C.

ClaimsSchema-elementet definierar de anspråkstyper som refereras till som en del av principen. Anspråksschemat är den plats där du deklarerar dina anspråk. Ett anspråk kan vara förnamn, efternamn, visningsnamn, telefonnummer med mera. Elementet ClaimsSchema innehåller en lista över ClaimType-element . Elementet ClaimType innehåller Id-attributet, som är anspråksnamnet.

<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

Elementet ClaimType innehåller följande attribut:

Attribut Krävs Beskrivning
Id Ja En identifierare som används för anspråkstypen. Andra element kan använda den här identifieraren i principen.

Elementet ClaimType innehåller följande element:

Element Händelser Beskrivning
DisplayName 1:1 Rubriken som visas för användare på olika skärmar. Värdet kan lokaliseras.
DataType 1:1 Anspråkets typ.
DefaultPartnerClaimTypes 0:1 Partnerns standardanspråkstyper som ska användas för ett angivet protokoll. Värdet kan skrivas över i PartnerClaimType som anges i elementen InputClaim eller OutputClaim . Använd det här elementet för att ange standardnamnet för ett protokoll.
Mask 0:1 En valfri sträng med maskeringstecken som kan användas när anspråket visas. Telefonnumret 324-232-4343 kan till exempel maskeras som XXX-XXX-4343.
UserHelpText 0:1 En beskrivning av anspråkstypen som kan vara till hjälp för användarna att förstå dess syfte. Värdet kan lokaliseras.
UserInputType 0:1 Den typ av indatakontroll som ska vara tillgänglig för användaren när anspråksdata för anspråkstypen anges manuellt. Se de användarindatatyper som definierats senare på den här sidan.
AdminHelpText 0:1 En beskrivning av anspråkstypen som kan vara till hjälp för administratörer att förstå dess syfte.
Begränsning 0:1 Värdebegränsningarna för det här anspråket, till exempel ett reguljärt uttryck (Regex) eller en lista över godkända värden. Värdet kan lokaliseras.
PredicateValidationReference 0:1 En referens till elementet PredicateValidationsInput . Med elementen PredicateValidationReference kan du utföra en valideringsprocess för att säkerställa att endast korrekt formade data anges. Mer information finns i Predikat.

DataType

DataType-elementet stöder följande värden:

Typ Beskrivning
boolean Representerar ett booleskt (true eller false) värde.
datum Representerar ett ögonblick i tiden, vanligtvis uttryckt som ett datum för en dag. Värdet för datumet följer ISO 8601-konventionen.
Datetime Representerar ett ögonblick i tiden, vanligtvis uttryckt som ett datum och en tid på dagen. Värdet för datumet följer ISO 8601-konventionen under körningen och konverteras till UNIX-epoktid när det utfärdas som ett anspråk till token.
varaktighet Representerar ett tidsintervall i år, månader, dagar, timmar, minuter och sekunder. Formatet är PnYnMnDTnHnMnS, där P indikerar positivt eller N negativt värde. nY är antalet år följt av en literal Y. nMo är antalet månader följt av en literal Mo. nD är antalet dagar följt av en literal D. Exempel: P21Y representerar 21 år. P1Y2Mo representerar ett år och två månader. P1Y2Mo5D representerar ett år, två månader och fem dagar. P1Y2M5DT8H5M20S representerar ett år, två månader, fem dagar, åtta timmar, fem minuter och tjugo sekunder.
phoneNumber Representerar ett telefonnummer.
int Representerar tal mellan -2 147 483 648 och 2 147 483 647
long Representerar tal mellan -9 223 372 036 854 775 808 till 9 223 372 036 854 775 807
sträng Representerar text som en sekvens av UTF-16-kodenheter.
stringCollection Representerar en samling med string.
userIdentity Representerar en användaridentitet.
userIdentityCollection Representerar en samling med userIdentity.

DefaultPartnerClaimTypes

DefaultPartnerClaimTypes kan innehålla följande element:

Element Händelser Beskrivning
Protokoll 1:n Lista över protokoll med deras standardnamn för partneranspråkstyp.

Elementet Protocol innehåller följande attribut:

Attribut Krävs Beskrivning
Name Ja Namnet på ett giltigt protokoll som stöds av Azure AD B2C. Möjliga värden är: OAuth1, OAuth2, SAML2, OpenIdConnect.
PartnerClaimType Ja Anspråkstypnamnet som ska användas.

I följande exempel, när Identity Experience Framework interagerar med en SAML2-identitetsprovider eller förlitande part, mappas efternamnsanspråket till http://schemas.xmlsoap.org/ws/2005/05/identity/claims/surname, med OpenIdConnect och OAuth2 mappas anspråket till .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>

Det innebär att JWT-token som utfärdats av Azure AD B2C genererar family_name namnet i stället för namnet ClaimType.

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

Mask

Mask-elementet innehåller följande attribut:

Attribut Krävs Beskrivning
Type Ja Typ av anspråksmask. Möjliga värden: Simple eller Regex. Värdet Simple anger att en enkel textmask tillämpas på den inledande delen av ett stränganspråk. Värdet Regex anger att ett reguljärt uttryck tillämpas på stränganspråket som helhet. Om värdet Regex anges måste även ett valfritt attribut definieras med det reguljära uttryck som ska användas.
Regex Nej Om Type är inställt på Regexanger du det reguljära uttryck som ska användas.

I följande exempel konfigureras ett PhoneNumber-anspråk med masken Simple . Fler exempel finns i livedemon Claim simple mask (Anspråks enkel mask).

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

Identity Experience Framework återger telefonnumret medan de första sex siffrorna döljs:

Telefonnummeranspråk som visas i webbläsaren med de första sex siffrorna maskerade av X

I följande exempel konfigureras ett AlternateEmail-anspråk med masken Regex . Fler exempel finns i regexmaskens livedemo.

<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>

Identity Experience Framework återger endast den första bokstaven i e-postadressen och e-postdomännamnet:

Email anspråk som visas i webbläsaren med tecken maskerade av asterisker

Begränsning

Begränsningselementet kan innehålla följande attribut:

Attribut Krävs Beskrivning
MergeBehavior Nej Den metod som används för att sammanfoga uppräkningsvärden med en ClaimType i en överordnad princip med samma identifierare. Använd det här attributet när du skriver över ett anspråk som anges i basprincipen. Möjliga värden: Append, Prependeller ReplaceAll. Värdet Append är en samling data som ska läggas till i slutet av samlingen som anges i den överordnade principen. Värdet Prepend är en samling data som ska läggas till före den samling som anges i den överordnade principen. Värdet ReplaceAll är en samling data som anges i den överordnade principen som ska ignoreras.

Elementet Restriction innehåller följande element:

Element Händelser Beskrivning
Uppräkning 1:n De tillgängliga alternativen i användargränssnittet för användaren att välja för ett anspråk, till exempel ett värde i en listruta.
Mönster 1:1 Det reguljära uttryck som ska användas.

Uppräkning

Uppräkningselementet definierar tillgängliga alternativ som användaren kan välja för ett anspråk i användargränssnittet, till exempel ett värde i , CheckboxMultiSelectDropdownSingleSelecteller RadioSingleSelect. Du kan också definiera och lokalisera tillgängliga alternativ med elementet LocalizedCollections . Om du vill söka efter ett objekt från en anspråksuppräkningssamling använder du anspråkstransformeringen GetMappedValueFromLocalizedCollection .

Uppräkningselementet innehåller följande attribut:

Attribut Krävs Beskrivning
Text Ja Visningssträngen som visas för användaren i användargränssnittet för det här alternativet.
Värde Ja Anspråksvärdet som är associerat med att välja det här alternativet.
SelectByDefault Nej Anger om det här alternativet ska väljas som standard i användargränssnittet. Möjliga värden: Sant eller Falskt.

I följande exempel konfigureras ett anspråk i listrutan stad med ett standardvärde inställt på New York. Fler exempel finns i liveuppräkning av anspråksbegränsning.

<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>

Listruta med ett standardvärde inställt på New York:

Listrutekontroll renderad i webbläsaren och visar standardvärde

Mönster

Pattern-elementet kan innehålla följande attribut:

Attribut Krävs Beskrivning
RegularExpression Ja Det reguljära uttryck som anspråk av den här typen måste matcha för att vara giltigt.
Hjälptext Nej Ett felmeddelande för användare om kontrollen av reguljära uttryck misslyckas.

I följande exempel konfigureras ett e-postanspråk med validering av reguljära uttrycksindata och hjälptext:

<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>

Identity Experience Framework återger e-postadressanspråket med validering av e-postformatets indata:

Textruta som visar felmeddelande som utlöses av regex-begränsning

UserInputType

Azure AD B2C stöder en mängd olika typer av användarindata, till exempel en textruta, ett lösenord och en listruta som kan användas när du manuellt anger anspråksdata för anspråkstypen. Du måste ange UserInputType när du samlar in information från användaren med hjälp av en självkontrollerad teknisk profil och visningskontroller.

Ta en titt på livedemon för användarens indatatyp.

UserInputType-elementet tillgängliga typer av användarindata:

UserInputType ClaimType som stöds Beskrivning
KryssrutaMultiVälj string Listruta med flera val. Anspråksvärdet representeras i en kommaavgränsarsträng med de valda värdena.
DateTimeDropdown date, dateTime Listrutor för att välja en dag, månad och år.
ListrutaVälj string Listrutan Välj enstaka. Anspråksvärdet är det valda värdet.
E-postruta string Email indatafält.
Stycke boolean, date, dateTime, duration, int, long, string Ett fält som endast visar text i en stycketagg.
Lösenord string Textruta för lösenord.
RadioSingleSelect string Samling alternativknappar. Anspråksvärdet är det valda värdet.
Readonly boolean, date, dateTime, duration, int, long, string Skrivskyddad textruta.
TextBox boolean, int, phoneNumber, string Textruta med en rad.

TextBox

TextBox-användarens indatatyp används för att tillhandahålla en textruta med en rad.

Textruta som visar egenskaper som angetts i anspråkstyp

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

E-postruta

E-postbox-användarens indatatyp används för att ange ett grundläggande fält för e-postinmatning.

EmailBox som visar egenskaper som angetts i anspråkstyp

<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>

Lösenord

Indatatypen Lösenordsanvändare används för att registrera ett lösenord som angetts av användaren.

Använda anspråkstyp med lösenord

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

DateTimeDropdown

Indatatypen DateTimeDropdown-användare används för att tillhandahålla en uppsättning listrutor för att välja en dag, månad och år. Du kan använda elementen Predicates och PredicateValidations för att kontrollera lägsta och högsta datumvärden. Mer information finns i avsnittet Konfigurera ett datumintervall i Predikat och PredikatValidationer.

Använda anspråkstyp med 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

Indatatypen RadioSingleSelect används för att tillhandahålla en samling alternativknappar som gör att användaren kan välja ett alternativ.

Använda anspråkstyp med 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>

Indatatypen DropdownSingleSelect används för att tillhandahålla en listruta där användaren kan välja ett alternativ.

Använda anspråkstyp med listrutorvälja

<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>

KryssrutaMultiVälj

Indatatypen CheckboxMultiSelect används för att tillhandahålla en samling kryssrutor som gör att användaren kan välja flera alternativ.

Använda anspråkstyp med checkboxmultiselect

<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

Indatatypen Readonly används för att ange ett skrivskyddat fält för att visa anspråket och värdet.

Använda anspråkstyp med skrivskyddad

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

Stycke

Indatatypen Styckeanvändare används för att ange ett fält som endast visar text i en stycketagg. Till exempel <p text></p>. En styckeanvändares indatatyp OutputClaim för en självkontrollerad teknisk profil måste ange Required attributet false (standard).

Använda anspråkstyp med stycke

<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>