Personnaliser des revendications émises dans le jeton SAML pour les applications d’entreprise

La plateforme d’identités Microsoft prend en charge l’authentification unique avec la plupart des applications d’entreprise, y compris les applications préintégrées dans la galerie d’applications Azure Active Directory (Azure AD) et les applications personnalisées. Quand un utilisateur s’authentifie auprès d’une application par l’intermédiaire de la plateforme d’identités Microsoft en utilisant le protocole SAML 2.0, la plateforme d’identités Microsoft envoie un jeton à l’application. Après quoi, l’application valide et utilise ce jeton pour connecter l’utilisateur au lieu de lui demander un nom d’utilisateur et un mot de passe.

Ces jetons SAML contiennent des informations sur l’utilisateur appelées revendications. Une revendication concerne ce qu’un fournisseur d’identité déclare sur un utilisateur dans le jeton qu’il émet sur cet utilisateur. Dans un jeton SAML, ces données de revendication sont généralement contenues dans l’instruction d’attribut SAML. L’ID unique de l’utilisateur est généralement représenté dans l’objet SAML, également appelé identificateur de nom (nameID).

Par défaut, la plateforme d’identités Microsoft émet un jeton SAML à destination d’une application qui contient une revendication NameIdentifier, dont la valeur est le nom d’utilisateur de l’utilisateur (ou nom d’utilisateur principal) dans Azure AD et qui peut identifier l’utilisateur de façon unique. Le jeton SAML contient également d’autres revendications contenant l’adresse e-mail de l’utilisateur, son prénom et son nom.

Afficher ou modifier des revendications

Pour afficher ou modifier les revendications émises dans le jeton SAML à destination de l’application, ouvrez l’application dans le portail Azure. Ensuite, ouvrez la section Attributs & Revendications.

Capture d’écran de l’ouverture de la section Revendications &Attributs dans le Portail Azure.

Vous pouvez être amené à modifier les revendications émises dans le jeton SAML pour les deux raisons suivantes :

  • La revendication NameIdentifier ou NameID doit être différente du nom d’utilisateur (ou du nom d’utilisateur principal) stocké dans Azure AD pour l’application.
  • L’application a été écrite pour exiger un ensemble différent d’URI de revendication ou de valeurs de revendication.

Modifier nameID

Pour modifier le NameID (valeur d’identificateur du nom) :

  1. Ouvrez la page Valeur de nom d’identificateur.

  2. Sélectionnez l’attribut ou la transformation à appliquer à l’attribut. Si vous le souhaitez, vous pouvez spécifier le format de la revendication NameID.

    Capture d’écran de la modification de la valeur NameID (identificateur de nom) dans le Portail Azure.

Format NameID

Si la requête SAML contient l’élément NameIDPolicy dans un format spécifique, la plateforme d’identités Microsoft respecte le format de la requête.

Si la requête SAML ne contient aucun élément pour NameIDPolicy, alors la plateforme d’identités Microsoft émet la revendication NameID au format que vous spécifiez. Si aucun format n’est spécifié, la plateforme d’identités Microsoft utilise le format source par défaut associé à la source de la revendication sélectionnée. Si une transformation génère une valeur null ou non conforme, Azure AD envoie un identificateur de paire persistant dans le nameIdentifier.

Dans le menu déroulant Choisir le format du nom de l’identificateur, sélectionnez l’une des options dans le tableau suivant.

Format NameID Description
Par défaut Plateforme d’identités Microsoft utilise le format source par défaut.
Persistent Plateforme d’identités Microsoft utilise Persistent comme format de NameID.
Adresse e-mail Plateforme d’identités Microsoft utilise EmailAddress comme format de NameID.
Unspecified Plateforme d’identités Microsoft utilise Unspecified comme format de NameID.
Nom de domaine complet Windows Plateforme d’identités Microsoft utilise le format WindowsDomainQualifiedName.

Un élément NameID temporaire est également pris en charge, mais il n’est pas disponible dans la liste déroulante et ne peut pas être configuré côté Azure. Pour en savoir plus sur l’attribut NameIDPolicy, consultez Protocole SAML d’authentification unique.

Attributs

Sélectionnez la source souhaitée pour la revendication NameIdentifier (ou NameID). Vous pouvez sélectionner les options suivantes.

Nom Description
E-mail Adresse e-mail de l’utilisateur
userprincipalName Nom d’utilisateur principal (UPN) de l’utilisateur
onpremisessamaccountname Nom de compte SAM qui a été synchronisé à partir d’Azure AD en local
objectid ID d’objet de l’utilisateur dans Azure AD
employeeid ID d’employé de l’utilisateur
Extensions d’annuaire Extensions d’annuaire synchronisées à partir d’Active Directory local à l’aide d’Azure AD Connect Sync
Attributs d’extension 1-15 Attributs d’extension local utilisés pour étendre le schéma Azure AD
pairwiseid Forme persistante de l’identificateur d’utilisateur

Pour plus d'informations sur les valeurs d’identification, voir le Tableau 3 : Valeurs d’identification valides par source.

Toute valeur constante (statique) peut être affectée à n’importe quelle revendication définie dans Azure AD. Les étapes suivantes décrivent comment attribuer une valeur constante :

  1. Dans le portail Azure, dans la section Attributs&Revendications, cliquez sur l’icône Modifier pour modifier les revendications.

  2. Sélectionnez la revendication requise que vous souhaitez modifier.

  3. Entrez la valeur constante sans guillemets dans Attribut source conformément à votre organisation, puis cliquez sur Enregistrer.

    Capture d’écran de la section Revendications &Attributs de l’organisation dans le Portail Azure.

  4. La valeur constante s’affiche comme indiqué dans l’image suivante.

    Capture d’écran de la modification de la section Revendications &Attributs dans le Portail Azure.

Transformations de revendications spéciales

Vous pouvez utiliser les fonctions spéciales de transformation de revendication suivantes.

Fonction Description
ExtractMailPrefix() Supprime le suffixe de domaine de l’adresse e-mail ou du nom d’utilisateur principal. La fonction extrait seulement la première partie du nom d’utilisateur transmis (par exemple, « joe_smith » au lieu de joe_smith@contoso.com).
ToLower() Convertit les caractères de l’attribut sélectionné en minuscules.
ToUpper() Convertit les caractères de l’attribut sélectionné en majuscules.

Ajouter des revendications spécifiques à l’application

Pour ajouter des revendications spécifiques à l’application :

  1. Dans Attributs et revendications de l’utilisateur, sélectionnez Ajouter une revendication pour ouvrir la page Gérer les revendications des utilisateurs.
  2. Entrez le nom des revendications. La valeur n’a pas besoin de suivre strictement un modèle URI, selon la spécification SAML. Si vous avez besoin d’un modèle d’URI, vous pouvez l’indiquer dans le champ Namespace.
  3. Sélectionnez la Source où la revendication va récupérer sa valeur. Vous pouvez sélectionner un attribut utilisateur dans le menu déroulant d’attribut de la source ou appliquer une transformation à l’attribut utilisateur avant de l’émettre en tant que réclamation.

Transformations de revendication

Pour appliquer une transformation à un attribut utilisateur :

  1. Dans Gérer les revendications, sélectionnez Transformation comme source de revendication pour ouvrir la page Gérer la transformation.

  2. Sélectionnez la fonction dans la liste déroulante de transformation. Selon la fonction sélectionnée, vous devrez fournir des paramètres et une valeur constante à évaluer dans la transformation. Pour plus d’informations sur les fonctions disponibles, reportez-vous au tableau suivant.

  3. Traiter la source comme valeur multiple est une case à cocher indiquant si la transformation doit être appliquée à toutes les valeurs ou uniquement à la première. Par défaut, les transformations ne s’appliquent qu’au premier élément d’une revendication multiple. En cochant cette case, vous garantissez qu’elle est appliquée à toutes. Cette case à cocher est activée uniquement pour les attributs multiples, par exemple user.proxyaddresses.

  4. Pour appliquer plusieurs transformations, sélectionnez Ajouter une transformation. Vous pouvez appliquer un maximum de deux transformations à une revendication. Par exemple, vous pouvez d’abord extraire le préfixe e-mail de user.mail. Ensuite, mettez la chaîne en majuscules.

    Capture d’écran de la transformation des revendications.

Vous pouvez utiliser les fonctions suivantes pour transformer des revendications.

Fonction Description
ExtractMailPrefix() Supprime le suffixe de domaine de l’adresse e-mail ou du nom d’utilisateur principal. La fonction extrait seulement la première partie du nom d’utilisateur transmis (par exemple, « joe_smith » au lieu de joe_smith@contoso.com).
Join() Crée une nouvelle valeur en joignant deux attributs. Si vous le souhaitez, vous pouvez utiliser un séparateur entre les deux attributs. Pour la transformation de revendication NameID, la fonction Join() a un comportement spécifique lorsque l’entrée de transformation a une partie de domaine. Elle supprime la partie de domaine de l’entrée avant de la joindre au séparateur et au paramètre sélectionné. Par exemple, si l’entrée de la transformation est « joe_smith@contoso.com » et que le séparateur est « @ » et que le paramètre est « fabrikam.com », cela se traduit en « joe_smith@fabrikam.com ».
ToLowercase() Convertit les caractères de l’attribut sélectionné en minuscules.
ToUppercase() Convertit les caractères de l’attribut sélectionné en majuscules.
Contains() Génère un attribut ou une constante si l’entrée correspond à la valeur spécifiée. Sinon, vous pouvez spécifier une autre sortie s’il n’existe aucune correspondance.
Par exemple, vous pouvez émettre une revendication où la valeur est l’adresse e-mail de l’utilisateur si elle contient le domaine « @contoso.com ». Dans le cas contraire, nous vous conseillons de générer le nom d’utilisateur principal. Pour effectuer cette fonction, vous configurez les valeurs suivantes :
Paramètre 1 (entrée) : user.email
Valeur : « @contoso.com »
Paramètre 2 (sortie) : user.email
Paramètre 3 (sortie s’il n’existe aucune correspondance) : user.userprincipalname
EndWith() Génère un attribut ou une constante si l’entrée se termine par la valeur spécifiée. Sinon, vous pouvez spécifier une autre sortie s’il n’existe aucune correspondance.
Par exemple, vous pouvez émettre une revendication dont la valeur est l’ID d’employé de l’utilisateur, si l’ID d’employé se termine par « 000 ». Dans ce cas, nous vous recommandons d’obtenir un attribut d’extension en sortie. Pour effectuer cette fonction, vous configurez les valeurs suivantes :
Paramètre 1 (entrée) : user.employeeid
Valeur : "000"
Paramètre 2 (sortie) : user.employeeid
Paramètre 3 (sortie, s’il n’existe aucune correspondance) : user.extensionattribute1
StartWith() Génère un attribut ou une constante si l’entrée commence par la valeur spécifiée. Sinon, vous pouvez spécifier une autre sortie s’il n’existe aucune correspondance.
Par exemple, vous pouvez émettre une revendication dont la valeur est l’ID d’employé de l’utilisateur, si la valeur de Pays/région commence par « US ». Dans ce cas, nous vous recommandons d’obtenir un attribut d’extension en sortie. Pour effectuer cette fonction, vous configurez les valeurs suivantes :
Paramètre 1 (entrée) : user.country
Valeur : "US"
Paramètre 2 (sortie) : user.employeeid
Paramètre 3 (sortie, s’il n’existe aucune correspondance) : user.extensionattribute1
Extract() - After matching Retourne la sous-chaîne après qu’elle ait atteint la valeur spécifiée.
Par exemple, si la valeur de l’entrée est « Finance_BSimon », la valeur correspondante est « Finance_ » et la sortie de la revendication est « BSimon ».
Extract() - Before matching Retourne la sous-chaîne jusqu’à ce qu’elle corresponde à la valeur spécifiée.
Par exemple, si la valeur de l’entrée est « BSimon_US », la valeur correspondante est « _US » et la sortie de la revendication est « BSimon ».
Extract() - Between matching Retourne la sous-chaîne jusqu’à ce qu’elle corresponde à la valeur spécifiée.
Par exemple, si la valeur de l’entrée est « Finance_BSimon_US », la première valeur correspondante est « Finance_ », la seconde « _US » et la sortie de la revendication est « BSimon ».
ExtractAlpha() - Prefix Retourne la partie alphabétique du préfixe de la chaîne.
Par exemple, si la valeur de l’entrée est « BSimon_123 », elle retourne « BSimon ».
ExtractAlpha() - Suffix Retourne la partie alphabétique du suffixe de la chaîne.
Par exemple, si la valeur de l’entrée est « 123_Simon », elle retourne « Simon ».
ExtractNumeric() - Prefix Retourne la partie numérique du préfixe de la chaîne.
Par exemple, si la valeur de l’entrée est « 123_BSimon », elle retourne « 123 ».
ExtractNumeric() - Suffix Retourne la partie numérique du suffixe de la chaîne.
Par exemple, si la valeur de l’entrée est « BSimon_123 », elle retourne « 123 ».
IfEmpty() Génère un attribut ou une constante en sortie si l’entrée est Null ou vide.
Par exemple, si vous souhaitez générer un attribut stocké dans un extensionattribute si l’ID d’employé pour un utilisateur donné est vide. Pour effectuer cette fonction, vous configurez les valeurs suivantes :
Paramètre 1 (entrée) : user.employeeid
Paramètre 2 (sortie) : user.extensionattribute1
Paramètre 3 (sortie s’il n’existe aucune correspondance) : user.employeeid
IfNotEmpty() Génère un attribut ou une constante en sortie si l’entrée n’est pas Null ou vide.
Par exemple, si vous souhaitez générer un attribut stocké dans un extensionattribute si l’ID d’employé pour un utilisateur donné n’est pas vide. Pour effectuer cette fonction, vous configurez les valeurs suivantes :
Paramètre 1 (entrée) : user.employeeid
Paramètre 2 (sortie) : user.extensionattribute1
Substring() – Longueur fixe (préversion) Extrait des parties d’un type de revendication de chaîne, en commençant au caractère à la position spécifiée et retourne le nombre spécifié de caractères.
SourceClaim - Source de la revendication sur laquelle la transformation doit être exécutée.
StartIndex - Position du caractère de départ de base zéro d’une sous-chaîne de cette instance.
Length - Longueur des caractères de la sous-chaîne.
Par exemple :
sourceClaim - PleaseExtractThisNow
StartIndex - 6
Longueur – 11
Output: ExtractThis
Substring() – EndOfString (préversion) Extrait des parties d’un type de revendication de chaîne, en commençant au caractère à la position spécifiée et retourne le reste de la revendication de l’index de début spécifié.
SourceClaim - Source de la revendication sur laquelle la transformation doit être exécutée.
StartIndex - Position du caractère de départ de base zéro d’une sous-chaîne de cette instance.
Par exemple :
sourceClaim - PleaseExtractThisNow
StartIndex - 6
Output: ExtractThisNow
RegexReplace() (préversion) La transformation RegexReplace() accepte comme paramètres d’entrée :
- Paramètre 1 : un attribut utilisateur comme entrée regex
- Une option permettant d’approuver la source comme étant à valeurs multiples
- Un modèle d’expression régulière
- Un modèle de remplacement Le modèle de remplacement peut contenir un format de texte statique, ainsi que des références pointant vers des groupes de sortie regex et des paramètres d’entrée en plus.

D’autres instructions sur l’utilisation de la transformation RegexReplace() sont décrites plus loin dans cet article.

Si vous avez besoin d’autres transformations, soumettez votre idée dans le Forum de commentaires Azure AD sous la catégorie Application SaaS.

Transformation des revendications basées sur regex

L’image suivante montre un exemple du premier niveau de transformation :

Capture d’écran du premier niveau de transformation.

Le tableau suivant fournit des informations sur le premier niveau de transformations. Les actions répertoriées dans le tableau correspondent aux étiquettes de l’image précédente. Sélectionnez Modifier pour ouvrir le panneau de transformation des revendications.

Action Champ Description
1 Transformation Sélectionnez l’option RegexReplace() dans les options Transformation pour utiliser la méthode de transformation de revendications basée sur regex pour la transformation des revendications.
2 Paramètre 1 Entrée pour la transformation d’expression régulière. Par exemple, user.mail qui a une adresse e-mail utilisateur telle que admin@fabrikam.com.
3 Traiter la source comme étant à valeurs multiples Certains attributs utilisateur d’entrée peuvent être des attributs utilisateur à valeurs multiples. Si l’attribut utilisateur sélectionné prend en charge plusieurs valeurs et que l’utilisateur souhaite utiliser plusieurs valeurs pour la transformation, il devra sélectionner Traiter la source comme étant à valeurs multiples. Si cette option est sélectionnée, toutes les valeurs sont utilisées pour la correspondance regex. Sinon, seule la première valeur est utilisée.
4 Modèle d’expression régulière Expression régulière évaluée par rapport à la valeur de l’attribut utilisateur sélectionné comme Paramètre 1. Par exemple, une expression régulière pour extraire l’alias utilisateur de l’adresse e-mail utilisateur pourrait être représentée comme suit : (?'domain'^.*?)(?i)(\@fabrikam\.com)$.
5 Ajouter un paramètre supplémentaire Plusieurs attributs utilisateur peuvent être utilisés pour la transformation. Les valeurs des attributs seraient ensuite fusionnées avec la sortie de transformation regex. Jusqu’à cinq paramètres supplémentaires sont pris en charge.
6 Modèle de remplacement Le modèle de remplacement est le modèle de texte, qui contient des espaces réservés pour le résultat regex. Tous les noms de groupes doivent être placés entre accolades, par exemple {group-name}. Supposez que l’administration souhaite utiliser un alias d’utilisateur avec un autre nom de domaine, par exemple xyz.com, et fusionner le nom de pays avec celui-ci. Dans ce cas, le modèle de remplacement serait {country}.{domain}@xyz.com, où {country} sera la valeur du paramètre d’entrée et {domain} sera la sortie de groupe de l’évaluation de l’expression régulière. Dans ce cas, le résultat attendu est US.swmal@xyz.com.

L’image suivante montre un exemple du second niveau de transformation :

Capture d’écran du deuxième niveau de transformation des revendications.

Le tableau suivant fournit des informations sur le second niveau de transformations. Les actions répertoriées dans le tableau correspondent aux étiquettes de l’image précédente.

Action Champ Description
1 Transformation Les transformations de revendications basées sur des expressions régulières ne sont pas limitées à la première transformation, et peuvent également être utilisées comme transformation de deuxième niveau. Toute autre méthode de transformation peut être utilisée comme première transformation.
2 Paramètre 1 Si RegexReplace() est sélectionnée comme transformation de deuxième niveau, la sortie de la transformation de premier niveau est utilisée comme entrée pour la transformation de deuxième niveau. L’expression régulière de deuxième niveau doit correspondre à la sortie de la première transformation ou la transformation n’est pas appliquée.
3 Modèle d’expression régulière Le modèle Regex est l’expression régulière de la transformation de deuxième niveau.
4 Entrée de paramètre Entrées d’attribut utilisateur pour les transformations de deuxième niveau.
5 Entrée de paramètre Les administrateurs peuvent supprimer le paramètre d’entrée sélectionné s’ils n’en ont plus besoin.
6 Modèle de remplacement Le modèle de remplacement est le modèle de texte qui contient des espaces réservés pour le nom du groupe de résultats, le nom du groupe de paramètres d’entrée et la valeur de texte statique de regex. Tous les noms de groupes doivent être placés entre accolades, par exemple {group-name}. Supposez que l’administration souhaite utiliser un alias d’utilisateur avec un autre nom de domaine, par exemple xyz.com, et fusionner le nom de pays avec celui-ci. Dans ce cas, le modèle de remplacement serait {country}.{domain}@xyz.com, où {country} sera la valeur du paramètre d’entrée et {domain} sera la sortie de groupe de l’évaluation de l’expression régulière. Dans ce cas, le résultat attendu est US.swmal@xyz.com.
7 Transformation de test La transformation RegexReplace() est évaluée uniquement si la valeur de l’attribut utilisateur sélectionné pour Paramètre 1 correspond à l’expression régulière fournie dans la zone de texte Modèle regex. S’ils ne correspondent pas, la valeur de revendication par défaut est ajoutée au jeton. Pour valider l’expression régulière par rapport à la valeur du paramètre d’entrée, une expérience de test est disponible dans le panneau de transformation. Cette expérience de test fonctionne uniquement sur des valeurs factices. Lorsque des paramètres d’entrée supplémentaires sont utilisés, le nom du paramètre est ajouté au résultat de test au lieu de la valeur réelle. Pour accéder à la section test, sélectionnez Tester la transformation.

L’image suivante montre un exemple de test des transformations :

Capture d’écran du test de la transformation.

Le tableau suivant fournit des informations sur le test des transformations. Les actions répertoriées dans le tableau correspondent aux étiquettes de l’image précédente.

Action Champ Description
1 Transformation de test Sélectionnez le bouton de fermeture (X) pour masquer la section de test et faire réapparaître le bouton Tester la transformation sur le panneau.
2 Tester l’entrée regex Accepte l’entrée utilisée pour l’évaluation du test d’expression régulière. Dans le cas où la transformation de revendications basées sur regex est configurée en tant que transformation de deuxième niveau, une valeur est fournir qui serait la sortie attendue de la première transformation.
3 Exécuter un test Une fois que l’entrée regex de test est fournie et que le modèle Regex, le modèle de remplacement et les paramètres d’entrée sont configurés, l’expression peut être évaluée en sélectionnant Exécuter le test.
4 Résultat de la transformation de test Si l’évaluation réussit, la sortie de la transformation de test apparaît en face de l’intitulé Résultat de la transformation de test.
5 Supprimer la transformation La transformation de deuxième niveau peut être supprimée en sélectionnant Supprimer la transformation.
6 Spécifiez la sortie s'il n'y a aucune correspondance Lorsqu’une valeur d’entrée regex est configurée par rapport au Paramètre 1 qui ne correspond pas à l’expression régulière, la transformation est ignorée. Dans ce cas, l’attribut utilisateur de remplacement peut être configuré, qui sera ajouté au jeton de la revendication en cochant la case Spécifiez la sortie s’il n’y a aucune correspondance.
7 Paramètre 3 Si un attribut utilisateur de remplacement doit être retourné en l’absence de correspondance et Spécifier la sortie si aucune correspondance est vérifiée, un attribut utilisateur de remplacement peut être sélectionné à l’aide de la liste déroulante. Cette liste déroulante est disponible en face de Paramètre 3 (sortie si aucune correspondance).
8 Résumé En bas du panneau, un résumé complet du format est affiché, qui explique la signification de la transformation par du texte simple.
9 Ajouter Une fois les paramètres de configuration de la transformation vérifiés, vous pouvez l’enregistrer dans une stratégie de revendications en sélectionnant Ajouter. Les modifications ne seront pas enregistrées, sauf si l’option Enregistrer est sélectionnée dans le panneau Gérer la revendication .

La transformation RegexReplace() est également disponible pour les transformations de revendications de groupe.

Validations de transformation RegexReplace()

Lorsque les conditions suivantes se produisent après l’option Ajouter ou Exécuter un test, un message s’affiche et fournit plus d’informations sur le problème :

  • Les paramètres d’entrée avec des attributs utilisateur en double ne sont pas autorisés.
  • Paramètres d’entrée inutilisés trouvés. Les paramètres d’entrée définis doivent avoir un usage respectif dans le texte du modèle de remplacement.
  • L’entrée regex de test fournie ne correspond pas à l’expression régulière fournie.
  • La source des groupes dans le modèle de remplacement est introuvable.

Ajouter la revendication UPN à des jetons SAML

La revendication http://schemas.xmlsoap.org/ws/2005/05/identity/claims/upn fait partie du jeu de revendications restreint SAML, donc vous ne pouvez pas l’ajouter dans la section Attributs& revendications. Pour contourner ce problème, vous pouvez l’ajouter en tant que revendication facultative via les Inscriptions d’applications dans le portail Azure.

Ouvrez l’application dans Inscriptions d’applications et sélectionnez Configuration du jeton, puis sélectionnez Ajouter une revendication facultative. Sélectionnez le type de jeton SAML, choisissezupn dans la liste, puis cliquez sur Ajouter pour ajouter la revendication au jeton.

Émettre des revendications basées sur des conditions

Vous pouvez spécifier la source d’une revendication en fonction du type d’utilisateur et du groupe auquel appartient l’utilisateur.

Le type d’utilisateur peut être :

  • Tous- Tous les utilisateurs sont autorisés à accéder à l’application.
  • Membres : Membre natif du locataire
  • Tous les invités : L’utilisateur est importé depuis une organisation externe avec ou sans Azure AD.
  • Invités AAD : L’utilisateur invité appartient à une autre organisation utilisant Azure AD.
  • Invités externes : L’utilisateur invité appartient à une organisation externe qui n’a pas Azure AD.

Un cas où le type d’utilisateur est utile est lorsque la source d’une revendication est différente pour un invité et un employé accédant à une application. Vous pouvez spécifier que si l’utilisateur est un employé, l’ID de nom provient de user.email. Si l’utilisateur est un invité, le NameID provient de user.extensionattribute1.

Pour ajouter une condition de revendication :

  1. Dans Gérer les revendications, développez les conditions de la revendication.
  2. Sélectionnez le type d’utilisateur.
  3. Sélectionnez le ou les groupes auxquels l’utilisateur doit appartenir. Vous pouvez sélectionner jusqu’à 50 groupes uniques sur l’ensemble des revendications pour une application donnée.
  4. Sélectionnez la Source où la revendication va récupérer sa valeur. Vous pouvez sélectionner un attribut utilisateur dans le menu déroulant d’attribut de la source ou appliquer une transformation à l’attribut utilisateur avant de l’émettre en tant que réclamation.

L’ordre dans lequel vous ajoutez les conditions est important. Azure AD évalue tout d’abord toutes les conditions avec la source Attribute, puis évalue toutes les conditions avec la source Transformation pour décider quelle valeur émettre dans la revendication. Les conditions avec la même source sont évaluées de haut en bas. La dernière valeur qui correspond à l’expression est émise dans la revendication. Les transformations, telles que IsNotEmpty et Contains, agissent comme des restrictions.

Par exemple, Britta Simon est figure parmi les utilisateurs invités dans le locataire Contoso. Britta appartient à une autre organisation qui utilise également Azure AD. Compte tenu de la configuration suivantes pour l’application Fabrikam, quand Britta tente de se connecter à Fabrikam, la plateforme d’identités Microsoft évalue les conditions comme suit.

Tout d’abord, la plateforme d’identités Microsoft vérifie si le type d’utilisateur de Britta est Tous les invités. Dans la mesure où la valeur est True, la plateforme d’identités Microsoft attribue la source de la revendication à user.extensionattribute1. Ensuite, la plateforme d’identités Microsoft vérifie si le type d’utilisateur de Britta est Invités AAD. Puisque la valeur est également True, la plateforme d’identités Microsoft attribue la source de la revendication à user.mail. Enfin, la revendication est émise avec une valeur deuser.mail pour Britta.

Capture d’écran de la configuration conditionnelle des revendications.

Autre exemple, examinons quand Britta Simon tente de se connecter et que la configuration suivante est utilisée. Azure AD évalue tout d’abord toutes les conditions avec la source Attribute. Étant donné que le type d’utilisateur de Britta est Invités AAD, user.mail est affecté en tant que source de la revendication. Ensuite, Azure AD évalue les transformations. Étant donné que Britta est un invité, user.extensionattribute1 est maintenant la nouvelle source de la revendication. Étant donné que Britta est dans Invités AAD, user.othermail est maintenant la source de cette revendication. Enfin, la revendication est émise avec une valeur deuser.othermail pour Britta.

Capture d’écran de la configuration conditionnelle d’autres revendications.

Comme dernier exemple, examinons ce qui se passe si Britta n’a pas de user.othermail configuré ou s’il est vide. Dans les deux cas, l’entrée de condition est ignorée et la revendication revient à user.extensionattribute1 à la place.

Options avancées des revendications SAML

Les options de revendications avancées peuvent être configurées pour que les applications SAML2.0 exposent la même revendication que les jetons OIDC et vice versa pour les applications qui ont l’intention d’utiliser la même revendication pour les jetons de réponse SAML2.0 et OIDC.

Les options de revendication avancées peuvent être configurées en cochant la case sous Options de revendications SAML avancées dans le panneau Gérer les revendications .

Le tableau suivant liste les autres options avancées qui peuvent être configurées pour une application.

Option Description
Ajouter l’ID d’application à l’émetteur Ajoute automatiquement l’ID d’application à la revendication de l’émetteur. Cette option garantit une valeur de revendication unique pour chaque instance lorsqu’il existe plusieurs instances de la même application. Ce paramètre est ignoré si une clé de signature personnalisée n’est pas configurée pour l’application.
Revendication de remplacement d’audience Autorise l’envoi de la revendication de remplacement d’audience à l’application. La valeur fournie doit être un URI absolu valide. Ce paramètre est ignoré si une clé de signature personnalisée n’est pas configurée pour l’application.
Inclure le format de nom d’attribut Si cette option est sélectionnée, Azure Active Directory ajoute un attribut appelé NameFormat qui décrit le format du nom pour les revendications restreintes, principales et facultatives pour l’application. Pour plus d’informations, consultez Type de stratégie de mappage de revendications.

Étapes suivantes