Nous utilisons OAuth 2.0 pour obtenir des jetons JWT à partir d'un Azure AD. Dans notre application, nous avons utilisé la valeur de la revendication 'upn' pour identifier un nom d'utilisateur interne associé.
En Référence du jeton Azure AD documente le upn comme un "User Principal Name", qui, d'après ce que je comprends, est un nom d'utilisateur suivant le format addr-spec (c'est-à-dire user@domain). Cela fonctionne bien pour les utilisateurs créés dans le Tenant Azure AD. Cependant, à ma grande surprise, le upn semble disparaître si l'utilisateur authentifié est synchronisé à partir d'un autre AD. Ce comportement ne semble être documenté nulle part.
- Où puis-je trouver de la documentation sur le moment où le upn est garanti dans un jeton ?
- Quelles sont les allégations alternatives fiables que je peux utiliser à la place ? De préférence, des revendications garanties sous la forme "utilisateur/domaine", car c'est ce qui correspond le mieux à notre modèle. J'ai envisagé les éléments suivants :
- nom_unique : J'ai seulement observé que cela était égal à upn mais je ne suis pas sûr d'où cela vient. De façon déroutante, le référence symbolique dit : Cette valeur est pas garanti pour être unique au sein d'un locataire et est conçu pour être utilisé uniquement à des fins d'affichage. (c'est moi qui souligne)
- e-mail : Cela aussi semble être égal à upn mais encore une fois, d'où vient-elle ? Dans le portail de gestion, j'ai essayé de mettre une valeur différente dans chaque champ relatif à l'email associé à l'utilisateur, mais aucune d'entre elles ne semble être propagée à cette demande. Il apparaît donc que ce champ est pas vraiment un email .
Je veux être absolument sûr que notre application sera capable de gérer tous les jetons émis par Azure AD. J'hésite donc à utiliser l'une ou l'autre des déclarations ci-dessus à moins de disposer d'une documentation expliquant leur sémantique réelle.