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": "aaaaaaaa-0000-1111-2222-bbbbbbbbbbbb",
"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:
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="(?<=.).(?=.*@)">*</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:
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 , Prepend of 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
, DropdownSingleSelect
of 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:
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.+!#$%&'+^_`{}~-]+(?:\.[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>
Het Identity Experience Framework geeft de claim van het e-mailadres weer met invoervalidatie voor e-mailindeling:
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 , , date dateTime , duration , , int , , long string |
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 , , date dateTime , duration , , int , , long string |
Tekstvak met het kenmerk Alleen-lezen. |
TextBox | boolean , , , int phoneNumber string |
Tekstvak met één regel. |
TextBox
Het invoertype Tekstvak wordt gebruikt om een tekstvak met één regel op te geven.
<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.
<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>
Wachtwoord
Het invoertype Wachtwoordgebruiker wordt gebruikt om een wachtwoord op te nemen dat door de gebruiker is ingevoerd.
<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 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 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>
DropdownSingleSelect
Het invoertype gebruiker DropdownSingleSelect wordt gebruikt om een vervolgkeuzelijst te bieden waarmee de gebruiker één optie kan selecteren.
<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 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 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 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>