ClaimsSchema

Notitie

In Azure Active Directory B2C is een aangepast beleid voornamelijk bedoeld om complexe scenario's aan te pakken. Voor de meeste scenario's raden we u aan de 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 element ClaimType bevat het kenmerk Id . Dit is de claimnaam.

<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 element ClaimType bevat het volgende kenmerk:

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

Het element ClaimType bevat de volgende elementen:

Element Instanties Description
DisplayName 1:1 De titel die op verschillende schermen voor gebruikers wordt weergegeven. 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 elementen InputClaim of OutputClaim . Gebruik dit element om de standaardnaam voor een protocol op te geven.
Maskeren 0:1 Een optionele tekenreeks van maskeringstekens die kan 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 die 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. Bekijk de typen gebruikersinvoer die verderop op deze pagina zijn gedefinieerd.
AdminHelpText 0:1 Een beschrijving van het claimtype die handig 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 gevormde gegevens worden ingevoerd. Zie Predicaten voor meer informatie.

DataType

Het element DataType ondersteunt de volgende waarden:

Type Beschrijving
booleaans 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-tijdvak wanneer deze wordt uitgegeven als een claim in het token.
duur Vertegenwoordigt een tijdsinterval in jaren, maanden, dagen, uren, minuten en seconden. De notatie van is PnYnMnDTnHnMnS, waarbij P positief wordt aangegeven, of N voor een negatieve waarde. nY is het aantal jaren gevolgd door een letterlijke Y. nMo is het aantal maanden gevolgd door een letterlijke Mo. nD is het aantal dagen gevolgd door een letterlijke 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 een getal tussen -2.147.483.648 en 2.147.483.647
long Vertegenwoordigt een 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 kan het volgende element bevatten:

Element Instanties Description
Protocol 1:n Lijst met protocollen met de standaardnaam van het claimtype van de partner.

Het protocolelement bevat de volgende kenmerken:

Kenmerk Vereist Beschrijving
Naam Yes De naam van een geldig protocol dat wordt ondersteund door Azure AD B2C. Mogelijke waarden zijn: OAuth1, OAuth2, SAML2, OpenIdConnect.
PartnerClaimType Yes De naam van het claimtype dat 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 family_namenaamnaamnaam in plaats van de achternaam van ClaimType.

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

Maskeren

Het element Masker bevat de volgende kenmerken:

Kenmerk Vereist Beschrijving
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 als geheel wordt toegepast op de tekenreeksclaim. Als de Regex waarde is opgegeven, moet er ook een optioneel kenmerk worden gedefinieerd met de reguliere expressie die moet worden gebruikt.
Regex No Als Type is ingesteld op 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 de livedemo Claim simple mask voor meer voorbeelden.

<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 de eerste zes cijfers gemaskeerd door Xs

In het volgende voorbeeld wordt een AlternateEmail-claim geconfigureerd met het Regex masker. Bekijk de livedemo regexmasker 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 e-maildomeinnaam weer:

Email claim weergegeven in de browser met tekens gemaskeerd door sterretjes

Beperking

Het element Beperking kan het volgende kenmerk bevatten:

Kenmerk Vereist Beschrijving
MergeBehavior No 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 en die moeten worden genegeerd.

Het element Beperking bevat de volgende elementen:

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

Inventarisatie

Het element Opsomming 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 claiminventarisatieverzameling.

Het element Opsomming bevat de volgende kenmerken:

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

In het volgende voorbeeld wordt een vervolgkeuzelijstclaim voor plaats geconfigureerd met een standaardwaarde die is ingesteld op New York. Bekijk de livedemo Claimbeperkingsinventarisatie 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 plaats met een standaardwaarde ingesteld op New York:

Besturingselement voor vervolgkeuzelijst dat wordt weergegeven in de browser en de standaardwaarde wordt weergegeven

Patroon

Het element Pattern kan de volgende kenmerken bevatten:

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

In het volgende voorbeeld wordt een e-mailclaim geconfigureerd met reguliere expressieinvoervalidatie 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 e-mailadresclaim weer met invoervalidatie voor e-mailindeling:

Tekstvak met een foutbericht dat wordt 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-gecontroleerd technisch profiel en weergavebesturingselementen.

Bekijk de livedemo van het gebruikersinvoertype.

Het element UserInputType dat beschikbaar is voor gebruikersinvoertypen:

UserInputType Ondersteund ClaimType Description
SelectievakjeMultiSelecteren string Vervolgkeuzelijst voor meervoudige selectie. De claimwaarde wordt weergegeven in een tekenreeks van het kommascheidingsteken 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 Email invoerveld.
Alinea boolean, date, dateTime, duration, int, long, string Een veld waarin alleen tekst in een alineatag wordt weergegeven.
Wachtwoord string Tekstvak Wachtwoord.
RadioSingleSelect string Verzameling keuzerondjes. De claimwaarde is de geselecteerde waarde.
Readonly boolean, date, dateTime, duration, int, long, string Alleen-lezen tekstvak.
Tekstvak boolean, int, phoneNumber, string Tekstvak met één regel.

Tekstvak

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 basisinvoerveld voor e-mail op te geven.

E-mailvak 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 met wachtwoord gebruiken

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

DateTimeDropdown

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

Claimtype gebruiken met datum/tijd-vervolgkeuzemenu

<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 gebruikersinvoertype DropdownSingleSelect wordt gebruikt om een vervolgkeuzelijst op te geven 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>

SelectievakjeMultiSelecteren

Het invoertype van de gebruiker 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>

Readonly

Het gebruikersinvoertype Readonly 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 Van de gebruiker Alinea wordt gebruikt om een veld op te geven waarin alleen tekst in een alineatag wordt weergegeven. Bijvoorbeeld <p>tekst</p>. Een invoertypeOutputClaim alineagebruiker van een zelf-gecontroleerd technisch profiel moet het Required kenmerk false (standaard) instellen.

Claimtype gebruiken met alinea

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