Dela via


ClaimsSchema

Kommentar

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 Obligatoriskt 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 Typ av anspråk.
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 du manuellt anger anspråksdata för anspråkstypen. 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 med acceptabla värden. Värdet kan lokaliseras.
PredicateValidationReference 0:1 En referens till ett PredicateValidationsInput-element . 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 på en dag. Värdet för datumet följer ISO 8601-konventionen.
dateTime Representerar ett ögonblick i tiden, vanligtvis uttryckt som datum och 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.
heltal Representerar tal mellan -2 147 483 648 och 2 147 483 647
lång 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 med 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 standardnamnet för partneranspråkstypen.

Protokollelementet innehåller följande attribut:

Attribut Obligatoriskt 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 Namnet på anspråkstypen 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 family_name av Azure AD B2C genererar i stället för ClaimType-namnets efternamn.

{
  "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 Obligatoriskt 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 ett valfritt attribut också 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 .

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

I följande exempel konfigureras ett AlternateEmail-anspråk med masken Regex . Om du vill ha fler exempel kan du titta på 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:

E-postanspråk som visas i webbläsaren med tecken maskerade av asterisker

Begränsning

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

Attribut Obligatoriskt Beskrivning
MergeBehavior Nej Metoden 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 innan samlingen som anges i den överordnade principen. Värdet ReplaceAll är en samling data som anges i den överordnade principen som ska ignoreras.

Begränsningselementet innehåller följande element:

Element Händelser beskrivning
Uppräkning 1:n Tillgängliga alternativ 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 för användaren att 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 GetMappedValueFromLocalizedCollection-anspråkstransformation.

Uppräkningselementet innehåller följande attribut:

Attribut Obligatoriskt 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 livedemon för anspråksbegränsningsuppräkning.

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

Mönster

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

Attribut Obligatoriskt Beskrivning
RegularExpression Ja Det reguljära uttryck som anspråk av den här typen måste matcha för att vara giltigt.
HelpText 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-postformatsindata:

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.

Kolla in 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 för de valda värdena.
DateTimeDropdown date, dateTime Listrutor för att välja en dag, månad och ett år.
ListrutaVälj string Listrutan Välj enstaka. Anspråksvärdet är det valda värdet.
E-postruta string Indatafält för e-post.
Stycke boolean, date, dateTime, duration, int, , , longstring Ett fält som endast visar text i en stycketagg.
Lösenord string Textruta för lösenord.
RadioSingleSelect string Samling med alternativknappar. Anspråksvärdet är det valda värdet.
Skrivskyddad boolean, date, dateTime, duration, int, , , longstring Skrivskyddad textruta.
TextBox boolean, int, , phoneNumberstring 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 anges i anspråkstyp

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

E-postruta

Indatatypen e-postbox-användare används för att tillhandahålla ett grundläggande fält för e-postinmatning.

EmailBox som visar egenskaper som anges 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ä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 styra lägsta och högsta datumvärden. Mer information finns i avsnittet Konfigurera ett datumintervall för 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 ange en listruta som gör att 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>

Skrivskyddad

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 skrivskyddat

<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 självsäkrad teknisk profil måste ange Required attributet false (standard). Den här användarinmatningstypen stöds endast i självsäkra sidlayouter. Enhetliga inloggnings- och registreringssidor (unifiedssp) kanske inte visar detta korrekt.

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>