Delen via


ClaimsSchema

Notitie

In Azure Active Directory B2C is aangepast beleid voornamelijk bedoeld om met complexe scenario's om te gaan. Voor de meeste scenario's wordt aangeraden ingebouwde gebruikersstromen te gebruiken. Als u dit nog niet hebt gedaan, vindt u meer informatie over aangepast beleid in het starterspakket in Aan de slag met aangepaste beleidsregels in Active Directory B2C.

Het element ClaimsSchema definieert de claimtypen waarnaar kan worden verwezen als onderdeel van het beleid. Het claimsschema is de plaats waar u uw claims declareert. Een claim kan voornaam, achternaam, weergavenaam, telefoonnummer en meer zijn. Het element ClaimsSchema bevat een lijst met ClaimType-elementen . Het claimtype-element bevat het id-kenmerk , de naam van de claim.

<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

Het claimtype-element bevat het volgende kenmerk:

Kenmerk Vereist Beschrijving
ID Ja Een id die wordt gebruikt voor het claimtype. Andere elementen kunnen deze id gebruiken in het beleid.

Het claimtype-element bevat de volgende elementen:

Element Instanties Beschrijving
DisplayName 1:1 De titel die wordt weergegeven aan gebruikers op verschillende schermen. De waarde kan worden gelokaliseerd.
DataType 1:1 Het type claim.
DefaultPartnerClaimTypes 0:1 De standaardclaimtypen van de partner die moeten worden gebruikt voor een opgegeven protocol. De waarde kan worden overschreven in het PartnerClaimType dat is opgegeven in de InputClaim- of OutputClaim-elementen. Gebruik dit element om de standaardnaam voor een protocol op te geven.
Masker 0:1 Een optionele tekenreeks met maskeringstekens die kunnen worden toegepast bij het weergeven van de claim. Het telefoonnummer 324-232-4343 kan bijvoorbeeld worden gemaskeerd als XXX-XXX-4343.
UserHelpText 0:1 Een beschrijving van het claimtype dat nuttig kan zijn voor gebruikers om het doel ervan te begrijpen. De waarde kan worden gelokaliseerd.
UserInputType 0:1 Het type invoerbeheer dat beschikbaar moet zijn voor de gebruiker bij het handmatig invoeren van de claimgegevens voor het claimtype. Zie de typen gebruikersinvoer die verderop op deze pagina zijn gedefinieerd.
AdminHelpText 0:1 Een beschrijving van het claimtype dat nuttig kan zijn voor beheerders om het doel ervan te begrijpen.
Beperking 0:1 De waardebeperkingen voor deze claim, zoals een reguliere expressie (Regex) of een lijst met acceptabele waarden. De waarde kan worden gelokaliseerd.
PredicateValidationReference 0:1 Een verwijzing naar het element PredicateValidationsInput . Met de predicateValidationReference-elementen kunt u een validatieproces uitvoeren om ervoor te zorgen dat alleen correct opgemaakte gegevens worden ingevoerd. Zie Predicaten voor meer informatie.

DataType

Het DataType-element ondersteunt de volgende waarden:

Type Beschrijving
boolean Vertegenwoordigt een Booleaanse waarde (true of false) .
datum Vertegenwoordigt een moment in de tijd, meestal uitgedrukt als een datum van een dag. De waarde van de datum volgt de ISO 8601-conventie.
dateTime Vertegenwoordigt een moment in de tijd, meestal uitgedrukt als een datum en tijd van de dag. De waarde van de datum volgt de ISO 8601-conventie tijdens runtime en wordt geconverteerd naar UNIX-tijdsperiode wanneer deze als claim in het token wordt uitgegeven.
duur Vertegenwoordigt een tijdsinterval in jaren, maanden, dagen, uren, minuten en seconden. De notatie is PnYnMnDTnHnMnS, waarbij P positieve of N negatieve waarde wordt aangegeven. nY is het aantal jaren gevolgd door een letterlijke waarde Y. nMo is het aantal maanden gevolgd door een letterlijke waarde Mo. nD is het aantal dagen gevolgd door een letterlijke waarde D. Voorbeelden: P21Y vertegenwoordigt 21 jaar. P1Y2Mo vertegenwoordigt één jaar en twee maanden. P1Y2Mo5D vertegenwoordigt één jaar, twee maanden en vijf dagen. P1Y2M5DT8H5M20S vertegenwoordigt één jaar, twee maanden, vijf dagen, acht uur, vijf minuten en twintig seconden.
phoneNumber Vertegenwoordigt een telefoonnummer.
int Vertegenwoordigt getal tussen -2.147.483.648 en 2.147.483.647
long Vertegenwoordigt getal tussen -9.223.372.036.854.775.808 tot 9.223.372.036.854.775.807
tekenreeks Vertegenwoordigt tekst als een reeks UTF-16-code-eenheden.
StringCollection Vertegenwoordigt een verzameling van string.
userIdentity Vertegenwoordigt een gebruikersidentiteit.
userIdentityCollection Vertegenwoordigt een verzameling van userIdentity.

DefaultPartnerClaimTypes

De DefaultPartnerClaimTypes kunnen het volgende element bevatten:

Element Instanties Beschrijving
Protocol 1:n Lijst met protocollen met de naam van het standaard claimtype van de partner.

Het protocolelement bevat de volgende kenmerken:

Kenmerk Vereist Description
Meting Ja De naam van een geldig protocol dat wordt ondersteund door Azure AD B2C. Mogelijke waarden zijn: OAuth1, OAuth2, SAML2, OpenIdConnect.
PartnerClaimType Ja De claimtypenaam die moet worden gebruikt.

In het volgende voorbeeld, wanneer het Identity Experience Framework communiceert met een SAML2-id-provider of relying party-toepassing, wordt de achternaamclaim toegewezen aan http://schemas.xmlsoap.org/ws/2005/05/identity/claims/surname, met OpenIdConnect en OAuth2, wordt de claim toegewezen aan 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>

Als gevolg hiervan verzendt het JWT-token dat is uitgegeven door Azure AD B2C, de naamnaam van ClaimType in plaats van de family_name naamnaam claimtype.

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

Masker

Het element Masker bevat de volgende kenmerken:

Kenmerk Vereist Omschrijving
Type Ja Het type claimmasker. Mogelijke waarden: Simple of Regex. De Simple waarde geeft aan dat een eenvoudig tekstmasker wordt toegepast op het voorloopgedeelte van een tekenreeksclaim. De Regex waarde geeft aan dat een reguliere expressie wordt toegepast op de tekenreeksclaim als geheel. Als de Regex waarde is opgegeven, moet ook een optioneel kenmerk worden gedefinieerd met de reguliere expressie die moet worden gebruikt.
Regex Nee Als Type dit is ingesteld Regex, geeft u de reguliere expressie op die moet worden gebruikt.

In het volgende voorbeeld wordt een PhoneNumber-claim geconfigureerd met het Simple masker. Bekijk voor meer voorbeelden de live demo van 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>

Het Identity Experience Framework geeft het telefoonnummer weer terwijl de eerste zes cijfers worden verborgen:

Claim telefoonnummer weergegeven in browser met eerste zes cijfers gemaskeerd door Xs

In het volgende voorbeeld wordt een AlternateEmail-claim geconfigureerd met het Regex masker. Bekijk de live demo van het Regex-masker voor meer voorbeelden.

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

Het Identity Experience Framework geeft alleen de eerste letter van het e-mailadres en de domeinnaam van het e-mailadres weer:

E-mailclaim weergegeven in de browser met tekens die worden gemaskeerd door sterretjes

Beperking

Het element Beperking kan het volgende kenmerk bevatten:

Kenmerk Vereist Beschrijving
MergeBehavior Nee De methode die wordt gebruikt om opsommingswaarden samen te voegen met een ClaimType in een bovenliggend beleid met dezelfde id. Gebruik dit kenmerk wanneer u een claim overschrijft die is opgegeven in het basisbeleid. Mogelijke waarden: Append, Prependof ReplaceAll. De Append waarde is een verzameling gegevens die moeten worden toegevoegd aan het einde van de verzameling die is opgegeven in het bovenliggende beleid. De Prepend waarde is een verzameling gegevens die moeten worden toegevoegd vóór de verzameling die is opgegeven in het bovenliggende beleid. De ReplaceAll waarde is een verzameling gegevens die zijn opgegeven in het bovenliggende beleid dat moet worden genegeerd.

Het element Beperking bevat de volgende elementen:

Element Instanties Beschrijving
Inventarisatie 1:n De beschikbare opties in de gebruikersinterface die de gebruiker kan selecteren voor een claim, zoals een waarde in een vervolgkeuzelijst.
Patroon 1:1 De reguliere expressie die moet worden gebruikt.

Inventarisatie

Het opsommingselement definieert beschikbare opties voor de gebruiker om te selecteren voor een claim in de gebruikersinterface, zoals een waarde in een CheckboxMultiSelect, DropdownSingleSelectof RadioSingleSelect. U kunt ook beschikbare opties definiëren en lokaliseren met het element LocalizedCollections . Gebruik GetMappedValueFromLocalizedCollection-claimtransformatie om een item op te zoeken uit een claimverzameling.

Het opsommingselement bevat de volgende kenmerken:

Kenmerk Vereist Beschrijving
Tekst Ja De weergavetekenreeks die wordt weergegeven aan de gebruiker in de gebruikersinterface voor deze optie.
Weergegeven als Ja De claimwaarde die is gekoppeld aan het selecteren van deze optie.
SelectByDefault Nee Hiermee wordt aangegeven of deze optie standaard moet worden geselecteerd in de gebruikersinterface. Mogelijke waarden: Waar of Onwaar.

In het volgende voorbeeld wordt een vervolgkeuzelijst voor plaatsen geconfigureerd met een standaardwaarde ingesteld op New York. Bekijk de livedemo voor claimbeperkingen voor meer voorbeelden.

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

Vervolgkeuzelijst met plaatsnamen met een standaardwaarde ingesteld op New York:

Besturingselement voor vervolgkeuzelijst weergegeven in browser en standaardwaarde weergeven

Patroon

Het element Patroon kan de volgende kenmerken bevatten:

Kenmerk Vereist Beschrijving
RegularExpression Ja De reguliere expressie die claims van dit type moet overeenkomen om geldig te zijn.
HelpText Nee Een foutbericht voor gebruikers als de reguliere expressiecontrole mislukt.

In het volgende voorbeeld wordt een e-mailclaim geconfigureerd met validatie van reguliere expressieinvoer en Help-tekst:

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

Het Identity Experience Framework geeft de claim van het e-mailadres weer met invoervalidatie voor e-mailindeling:

Tekstvak met foutbericht geactiveerd door regex-beperking

UserInputType

Azure AD B2C ondersteunt verschillende typen gebruikersinvoer, zoals een tekstvak, wachtwoord en vervolgkeuzelijst die kunnen worden gebruikt bij het handmatig invoeren van claimgegevens voor het claimtype. U moet het UserInputType opgeven wanneer u gegevens van de gebruiker verzamelt met behulp van een zelf-asserted technisch profiel en weergavebesturingselementen.

Bekijk de Live-demo van het invoertype van de gebruiker.

Het element UserInputType dat beschikbaar is voor gebruikersinvoertypen:

UserInputType Ondersteund claimtype Beschrijving
SelectievakjeMultiSelect string Vervolgkeuzelijst met meerdere selecties. De claimwaarde wordt weergegeven in een tekenreeks met kommascheidingstekens van de geselecteerde waarden.
DateTimeDropdown date, dateTime Vervolgkeuzelijsten om een dag, maand en jaar te selecteren.
DropdownSingleSelect string Vervolgkeuzelijst met één selectie. De claimwaarde is de geselecteerde waarde.
E-mailbox string Invoerveld voor e-mail.
Alinea boolean, , datedateTime, duration, , int, , longstring Een veld dat alleen tekst in een alineatag weergeeft.
Wachtwoord string Tekstvak wachtwoord.
RadioSingleSelect string Verzameling keuzerondjes. De claimwaarde is de geselecteerde waarde.
Alleen-lezen boolean, , datedateTime, duration, , int, , longstring Tekstvak met het kenmerk Alleen-lezen.
TextBox boolean, , , intphoneNumberstring Tekstvak met één regel.

TextBox

Het invoertype Tekstvak wordt gebruikt om een tekstvak met één regel op te geven.

Tekstvak met eigenschappen die zijn opgegeven in claimtype

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

E-mailbox

Het invoertype E-mailbox-gebruiker wordt gebruikt om een eenvoudig invoerveld voor e-mail op te geven.

E-mailbox met eigenschappen die zijn opgegeven in claimtype

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

Wachtwoord

Het invoertype Wachtwoordgebruiker wordt gebruikt om een wachtwoord op te nemen dat door de gebruiker is ingevoerd.

Claimtype gebruiken met wachtwoord

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

DateTimeDropdown

Het invoertype DateTimeDropdown-gebruiker wordt gebruikt om een set vervolgkeuzelijsten op te geven om een dag, maand en jaar te selecteren. U kunt predicaten en predicatieelementen gebruiken om de minimum- en maximumdatumwaarden te bepalen. Zie de sectie Een datumbereik van Predicaten en Predicaatvalidations configureren voor meer informatie.

Claimtype gebruiken met 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

Het invoertype RadioSingleSelect wordt gebruikt om een verzameling keuzerondjes te bieden waarmee de gebruiker één optie kan selecteren.

Claimtype gebruiken met 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>

Het invoertype gebruiker DropdownSingleSelect wordt gebruikt om een vervolgkeuzelijst te bieden waarmee de gebruiker één optie kan selecteren.

Claimtype gebruiken met vervolgkeuzelijstenleselect

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

SelectievakjeMultiSelect

Het invoertype CheckboxMultiSelect wordt gebruikt om een verzameling selectievakjes op te geven waarmee de gebruiker meerdere opties kan selecteren.

Claimtype gebruiken met selectievakjemultiselect

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

Alleen-lezen

Het invoertype Readonly-gebruiker wordt gebruikt om een alleen-lezen veld op te geven om de claim en waarde weer te geven.

Claimtype gebruiken met alleen-lezen

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

Alinea

Het invoertype alineagebruiker wordt gebruikt om een veld op te geven waarin alleen tekst in een alineatag wordt weergegeven. Bijvoorbeeld <p>text</p>. Een invoertype OutputClaim voor alineagebruikers van een zelfbeveerd technisch profiel moet het Required kenmerk false (standaard) instellen. Dit invoertype voor gebruikers wordt alleen ondersteund in zelfbewuste pagina-indelingen. Geïntegreerde aanmeldings- en registratiepagina's (unifiedssp) worden mogelijk niet correct weergegeven.

Claimtype met alinea gebruiken

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