ClaimsSchema
Notes
Dans Active Directory B2C, les stratégies personnalisées sont principalement conçues pour gérer des scénarios complexes. Pour la plupart des scénarios, nous vous recommandons de recourir à des flux d’utilisateurs intégrés. Si vous ne l’avez pas fait, découvrez le Pack de démarrage de stratégie personnalisée dans Prise en main des stratégies personnalisées dans Active Directory B2C.
L’élément ClaimsSchema définit les types de revendications qui peuvent être référencés dans le cadre de la stratégie. Le schéma de revendications est l’endroit où vous déclarez vos revendications. Une revendication peut être le prénom, le nom de famille, le nom d’affichage, le numéro de téléphone, et bien plus encore. L’élément ClaimsSchema contient une liste d’éléments ClaimType. L’élément ClaimType contient l’attribut Id, qui est le nom de la revendication.
<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
L’élément ClaimType contient l’attribut suivant :
Attribut | Obligatoire | Description |
---|---|---|
Id | Oui | Identificateur utilisé pour le type de revendication. D’autres éléments peuvent utiliser cet identificateur dans la stratégie. |
L’élément ClaimType contient les éléments suivants :
Élément | Occurrences | Description |
---|---|---|
DisplayName | 1:1 | Titre présenté aux utilisateurs sur différents écrans. La valeur peut être localisée. |
DataType | 1:1 | Type de la revendication. |
DefaultPartnerClaimTypes | 0:1 | Types de revendications par défaut de partenaire à utiliser pour un protocole spécifié. La valeur peut être substituée dans le PartnerClaimType spécifié dans l’élément InputClaim ou OutputClaim. Utilisez cet élément pour spécifier le nom par défaut d’un protocole. |
Mask | 0:1 | Chaîne facultative de caractères de masquage qui peuvent être appliqués lors de l’affichage de la revendication. Par exemple, le numéro téléphone 324-232-4343 peut être masqué comme suit : XXX-XXX-4343. |
UserHelpText | 0:1 | Description du type de revendication qui peut aider les utilisateurs à comprendre sa raison d’être. La valeur peut être localisée. |
UserInputType | 0:1 | Type de contrôle d’entrée qui doit être accessible à l’utilisateur lors de l’entrée manuelle des données de revendication pour le type de revendication. Voir les types d’entrées utilisateur définis plus loin dans cette page. |
AdminHelpText | 0:1 | Description du type de revendication qui peut aider les administrateurs à comprendre sa raison d’être. |
Restriction | 0:1 | Restrictions de la valeur de cette revendication, par exemple une expression régulière (Regex) ou une liste de valeurs acceptables. La valeur peut être localisée. |
PredicateValidationReference | 0:1 | Référence à un élément PredicateValidationsInput. Les éléments PredicateValidationReference vous permettent d’effectuer un processus de validation afin de vous assurer que seules des données correctement formées sont entrées. Pour plus d’informations, consultez Predicates. |
DataType
L’élément DataType prend en charge les valeurs suivantes :
Type | Description |
---|---|
boolean | Représente une valeur booléenne (true ou false ). |
Date | Représente un instant, généralement exprimé sous la forme d’une date. La valeur de la date est conforme à la convention ISO 8601. |
dateTime | Représente un instant, généralement exprimé sous la forme d'une date et d'une heure. La valeur de la date suit la convention ISO 8601 lors de l’exécution et est convertie en heure d’époque UNIX quand elle est émise en tant que revendication dans le jeton. |
duration | Représente un intervalle de temps en années, mois, jours, heures, minutes et secondes. Le format est PnYnMnDTnHnMnS , où P indique une valeur positive, ou N pour une valeur négative. nY correspond au nombre d’années suivi du littéral Y . nMo correspond au nombre de mois suivi du littéral Mo . nD correspond au nombre de jours suivi du littéral D . Exemples : P21Y représente 21 ans. P1Y2Mo représente un an et deux mois. P1Y2Mo5D représente un an, deux mois et cinq jours. P1Y2M5DT8H5M20S représente un an, deux mois, cinq jours, huit heures, cinq minutes et vingt secondes. |
phoneNumber | Représente un numéro de téléphone. |
int | Représente un nombre compris entre -2,147,483,648 et 2,147,483,647. |
long | Représente un nombre compris entre -9,223,372,036,854,775,808 et 9,223,372,036,854,775,807. |
string | Représente le texte en tant que séquence d’unités de code UTF-16. |
stringCollection | Représente une collection de string . |
userIdentity | Représente une identité d’utilisateur. |
userIdentityCollection | Représente une collection de userIdentity . |
DefaultPartnerClaimTypes
DefaultPartnerClaimTypes peut contenir l’élément suivant :
Élément | Occurrences | Description |
---|---|---|
Protocol | 1:n | Liste de protocoles avec leur nom de type de revendication de partenaire par défaut. |
L’élément Protocol contient les attributs suivants :
Attribut | Obligatoire | Description |
---|---|---|
Nom | Oui | Nom d’un protocole valide pris en charge par Azure AD B2C. Les valeurs possibles sont : OAuth1, OAuth2, SAML2 ou OpenID Connect. |
PartnerClaimType | Oui | Nom du type de revendication à utiliser. |
Dans l’exemple suivant, quand l’Infrastructure d’expérience d’identité interagit avec un fournisseur d’identité SAML2 ou une application de confiance, la revendication surname est mappée à http://schemas.xmlsoap.org/ws/2005/05/identity/claims/surname
. Avec OpenIdConnect et OAuth2, la revendication est mappée à 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>
Ainsi, le jeton JWT émis par Azure AD B2C émet le family_name
au lieu du nom de ClaimType surname.
{
"sub": "6fbbd70d-262b-4b50-804c-257ae1706ef2",
"auth_time": 1535013501,
"given_name": "David",
"family_name": "Williams",
"name": "David Williams",
}
Mask
L’élément Mask contient les attributs suivants :
Attribut | Obligatoire | Description |
---|---|---|
Type |
Oui | Type du masque de revendication. Valeurs possibles : Simple ou Regex . La valeur Simple indique qu’un masque de texte simple est appliqué à la partie gauche d’une revendication de chaîne. La valeur Regex indique qu’une expression régulière est appliquée à la revendication de chaîne dans son ensemble. Si la valeur Regex est spécifiée, un attribut facultatif doit également être défini avec l’expression régulière à utiliser. |
Regex |
Non | Si Type a la valeur Regex , spécifiez l’expression régulière à utiliser. |
L’exemple suivant configure une revendication PhoneNumber avec le masque Simple
. Pour obtenir d’autres exemples, consultez la Démonstration en direct de la revendication de masque simple.
<ClaimType Id="PhoneNumber">
<DisplayName>Phone Number</DisplayName>
<DataType>string</DataType>
<Mask Type="Simple">XXX-XXX-</Mask>
<UserHelpText>Your telephone number.</UserHelpText>
</ClaimType>
L’Infrastructure d’expérience d’identité affiche le numéro de téléphone tout en masquant les six premiers chiffres :
L’exemple suivant configure une revendication AlternateEmail avec le masque Regex
. Pour obtenir d’autres exemples, consultez la Démonstration en direct du masque Regex.
<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>
L’Infrastructure d’expérience d’identité affiche uniquement la première lettre de l’adresse e-mail et le nom de domaine de messagerie :
Restriction
L’élément Restriction peut contenir l’attribut suivant :
Attribut | Obligatoire | Description |
---|---|---|
MergeBehavior | Non | Méthode utilisée pour fusionner des valeurs d’énumération avec un ClaimType dans une stratégie parente avec le même identificateur. Utilisez cet attribut quand vous remplacez une revendication spécifiée dans la stratégie de base. Valeurs possibles : Append , Prepend ou ReplaceAll . La valeur Append est une collection de données qui doivent être ajoutées à la fin de la collection spécifiée dans la stratégie parente. La valeur Prepend est une collection de données qui doivent être ajoutées avant la collection spécifiée dans la stratégie parente. La valeur ReplaceAll est une collection de données spécifiée dans la stratégie parente qui doit être ignorée. |
L’élément Restriction contient les éléments suivants :
Élément | Occurrences | Description |
---|---|---|
Énumération | 1:n | Options que l’utilisateur peut sélectionner dans l’interface utilisateur pour une revendication, telles qu’une valeur dans une liste déroulante. |
Modèle | 1:1 | Expression régulière à utiliser. |
Énumération
L’élément Enumeration définit les options que l’utilisateur peut sélectionner pour une revendication dans l’interface utilisateur, telle qu’une valeur dans un CheckboxMultiSelect
, un DropdownSingleSelect
, ou un RadioSingleSelect
. Vous pouvez également définir et localiser les options disponibles avec l’élément LocalizedCollections. Pour rechercher un élément à partir d’une collection de revendications Enumeration, utilisez la transformation de revendications GetMappedValueFromLocalizedCollection.
L’élément Enumeration contient les attributs suivants :
Attribut | Obligatoire | Description |
---|---|---|
Texte | Oui | Chaîne d’affichage présentée à l’utilisateur dans l’interface utilisateur pour cette option. |
Valeur | Oui | Valeur de revendication associée à la sélection de cette option. |
SelectByDefault | Non | Indique si cette option doit être sélectionnée par défaut dans l’interface utilisateur. Valeurs possibles : True ou False. |
L’exemple suivant configure une revendication de liste déroulante city avec une valeur par défaut définie sur New York
. Pour obtenir d’autres exemples, consultez la Démonstration en direct de l’énumération des restrictions de revendication.
<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>
Liste déroulante de villes avec New York comme valeur par défaut :
Modèle
L’élément Pattern peut contenir les attributs suivants :
Attribut | Obligatoire | Description |
---|---|---|
RegularExpression | Oui | Expression régulière auxquelles les revendications de ce type doivent correspondre pour être valides. |
HelpText | Non | Message d’erreur présenté aux utilisateurs si la vérification de l’expression régulière échoue. |
L’exemple suivant configure une revendication email avec validation de l’entrée d’expression régulière et texte d’aide :
<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>
L’Infrastructure d’expérience d’identité affiche la revendication d’adresse e-mail avec validation de l’entrée du format d’e-mail :
UserInputType
Azure AD B2C prend en charge toute une gamme de types d’entrée d’utilisateur, telles qu’une zone de texte, un mot de passe et une liste déroulante pouvant être utilisées lors de l’entrée manuelle de données de revendications pour le type de revendication. Vous devez spécifier le UserInputType quand vous recueillez des informations de l’utilisateur à l’aide d’un profil technique autodéclaré et de contrôles d’affichage.
Consultez la démonstration en direct du type d’entrée utilisateur.
Les types d’entrée utilisateur disponibles pour l’élément UserInputType :
UserInputType | ClaimType pris en charge | Description |
---|---|---|
CheckboxMultiSelect | string |
Zone de liste déroulante à sélection multiple. La valeur de la revendication est représentée dans une chaîne délimitée par des virgules qui contient les valeurs sélectionnées. |
DateTimeDropdown | date , dateTime |
Listes déroulantes pour sélectionner un jour, un mois et une année. |
DropdownSingleSelect | string |
Zone de liste déroulante à sélection simple. La valeur de la revendication est la valeur sélectionnée. |
EmailBox | string |
Champ d’entrée de l’e-mail. |
Paragraph | boolean , date , , duration dateTime , int , , long ,string |
Champ qui affiche le texte uniquement dans une balise de paragraphe. |
Mot de passe | string |
Zone de texte pour mot de passe. |
RadioSingleSelect | string |
Collection de cases d’option. La valeur de la revendication est la valeur sélectionnée. |
Readonly | boolean , date , , duration dateTime , int , , long ,string |
Zone de texte en lecture seule. |
TextBox | boolean , , int phoneNumber , ,string |
Zone de texte sur une seule ligne. |
TextBox
Le type d’entrée d’utilisateur TextBox sert à fournir une zone de texte sur une seule ligne.
<ClaimType Id="displayName">
<DisplayName>Display Name</DisplayName>
<DataType>string</DataType>
<UserHelpText>Your display name.</UserHelpText>
<UserInputType>TextBox</UserInputType>
</ClaimType>
EmailBox
Le type d’entrée d’utilisateur EmailBox sert à fournir un champ d’entrée d’e-mail de base.
<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>
Mot de passe
Le type d’entrée d’utilisateur Password sert à enregistrer un mot de passe entré par l’utilisateur.
<ClaimType Id="password">
<DisplayName>Password</DisplayName>
<DataType>string</DataType>
<UserHelpText>Enter password</UserHelpText>
<UserInputType>Password</UserInputType>
</ClaimType>
DateTimeDropdown
Le type d’entrée d’utilisateur DateTimeDropdown sert à fournir un ensemble de listes déroulantes pour sélectionner un jour, un mois et une année. Vous pouvez utiliser des éléments Predicates et PredicateValidations pour contrôler les valeurs de date minimale et maximale. Pour plus d’informations, consultez la section Configurer une plage de dates de Predicates et PredicateValidations.
<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
Le type d’entrée d’utilisateur RadioSingleSelect sert à fournir une collection de cases d’option qui permet à l’utilisateur de sélectionner une option.
<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
Le type d’entrée d’utilisateur DropdownSingleSelect sert à fournir une zone de liste déroulante qui permet à l’utilisateur de sélectionner une option.
<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>
CheckboxMultiSelect
Le type d’entrée d’utilisateur CheckboxMultiSelect sert à fournir une collection de cases à cocher qui permet à l’utilisateur de sélectionner plusieurs options.
<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
Le type d’entrée d’utilisateur Readonly sert à fournir un champ en lecture seule pour afficher la revendication et la valeur.
<ClaimType Id="membershipNumber">
<DisplayName>Membership number</DisplayName>
<DataType>string</DataType>
<UserHelpText>Your membership number (read only)</UserHelpText>
<UserInputType>Readonly</UserInputType>
</ClaimType>
Paragraph
Le type d’entrée d’utilisateur Paragraph sert à fournir un champ qui affiche du texte uniquement dans une balise de paragraphe. Par exemple, <p>texte</p>. Un type d’entrée utilisateur ParagrapheOutputClaim
du profil technique autodéclaré doit définir l’attribut Required
sur false
(valeur par défaut). Ce type d’entrée utilisateur est uniquement pris en charge dans les mises en page autodéclarées. La connexion unifiée et les pages d’inscription (unifiedssp) peuvent ne pas s’afficher correctement.
<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>