image
image
image
image
image
image

Jeton didentification azure

Les

jetons d’ID de référence sont des jetons Web JSON (JWT). Les jetons d’ID v1.0 et v2.0 présentent des différences dans les informations qu’ils transportent. La version est basée sur le point de terminaison à partir duquel elle a été demandée. Alors que les applications existantes utilisent probablement le point de terminaison Azure AD v1.0, les nouvelles applications doivent utiliser le point de terminaison v2.0.

  • v1.0 :
  • v2.0 :

toutes les revendications JWT répertoriées dans les sections suivantes apparaissent dans les jetons v1.0 et v2.0, sauf indication contraire. Les jetons d’ID se composent d’un en-tête, d’une charge utile et d’une signature. L’en-tête et la signature sont utilisés pour vérifier l’authenticité du jeton, tandis que la charge utile contient les informations sur l’utilisateur demandées par votre client.

Le tableau suivant présente les revendications d’en-tête présentes dans les jetons d’ID.

Format de la réclamation Chaîne
de description - toujours « JWT » Indique que le jeton est un jeton JWT.
Chaîne Indique l’algorithme qui a été utilisé pour signer le jeton. Par exemple : Chaîne « RS256 »
Spécifie l’empreinte de la clé publique qui peut être utilisée pour valider la signature du jeton. Émis dans les jetons d’ID v1.0 et v2.0.
Les fonctions de chaîne (en termes d’utilisation et de valeur) identiques à celles de . sont une revendication héritée émise uniquement dans les jetons d’ID v1.0 à des fins de compatibilité.

Le

tableau suivant présente les revendications qui se trouvent par défaut dans la plupart des jetons d’ID (sauf indication contraire). Toutefois, votre application peut utiliser des revendications facultatives pour demander d’autres revendications dans le jeton d’ID. Les réclamations facultatives peuvent varier de la revendication à l’information sur le nom de l’utilisateur.

Claim Format
Description Chaîne, GUID d’ID d’application Identifie le destinataire prévu du jeton. Dans , l’audience est l’ID d’application de votre application, attribué à votre application dans le portail Azure. Cette valeur doit être validée. Le jeton doit être rejeté s’il ne correspond pas à l’ID d’application de votre application.
Chaîne, URI de l’émetteur Identifie l’émetteur, ou « serveur d’autorisation » qui construit et renvoie le jeton. Il identifie également le locataire pour lequel l’utilisateur a été authentifié. Si le jeton a été émis par le point de terminaison v2.0, l’URI se termine par . Le GUID qui indique que l’utilisateur est un utilisateur consommateur à partir d’un compte Microsoft est . Votre application doit utiliser la partie GUID de la revendication pour restreindre l’ensemble des locataires qui peuvent se connecter à l’application, le cas échéant.
int, un horodatage Unix Indique quand l’authentification du jeton a eu lieu.
Chaîne, généralement une URI STS Enregistre le fournisseur d’identité qui a authentifié l’objet du jeton. Cette valeur est identique à la valeur de la revendication de l’émetteur, sauf si le compte d’utilisateur ne se trouve pas dans le même locataire que l’émetteur, c’est-à-dire les invités, par exemple. Si l’affirmation n’est pas présente, cela signifie que la valeur de peut être utilisée à la place. Pour les comptes personnels utilisés dans un contexte organisationnel (par exemple, un compte personnel invité à un locataire), la revendication peut être « live.com » ou un URI STS contenant le locataire de compte Microsoft.
int, un horodatage Unix Identifie l’heure avant laquelle le JWT ne peut pas être accepté pour le traitement.
int, a Horodatage Unix Identifie le délai d’expiration à partir duquel le JWT ne peut pas être accepté pour le traitement. Dans certaines circonstances, une ressource peut rejeter le jeton avant ce délai. Par exemple, si une modification de l’authentification est requise ou si une révocation de jeton a été détectée.
Chaîne Le hachage du code n’est inclus dans les jetons d’ID que lorsque le jeton d’ID est émis avec un code d’autorisation OAuth 2.0. Il peut être utilisé pour valider l’authenticité d’un code d’autorisation. Pour comprendre comment effectuer cette validation, consultez la spécification OpenID Connect. Cette revendication n’est pas renvoyée sur les jetons d’ID à partir du point de terminaison /token.
Chaîne Le hachage du jeton d’accès est inclus dans les jetons d’ID uniquement lorsque le jeton d’ID est émis à partir du point de terminaison avec un jeton d’accès OAuth 2.0. Il peut être utilisé pour valider l’authenticité d’un jeton d’accès. Pour comprendre comment pour effectuer cette validation, consultez la spécification OpenID Connect. Cette revendication n’est pas renvoyée sur les jetons d’ID du point de terminaison.
Chaîne opaque Revendication interne utilisée pour enregistrer des données en vue de la réutilisation du jeton. Devrait être ignoré.
Chaîne : nom d’utilisateur principal qui représente l’utilisateur. Il peut s’agir d’une adresse e-mail, d’un numéro de téléphone ou d’un nom d’utilisateur générique sans format spécifié. Sa valeur est variable et peut changer au fil du temps. Comme elle est mutable, cette valeur ne peut pas être utilisée pour prendre des décisions d’autorisation. Il peut être utilisé pour les conseils de nom d’utilisateur et dans l’interface utilisateur lisible par l’homme en tant que nom d’utilisateur. Le champ d’application est requis pour recevoir cette réclamation. Présent uniquement dans les jetons v2.0.
Chaîne Présente par défaut pour les comptes invités qui ont une adresse e-mail. Votre application peut demander la revendication d’e-mail pour les utilisateurs gérés (à partir du même locataire que le ressource) à l’aide de la revendication facultative. Il n’est pas garanti que cette valeur soit correcte et peut être modifiée au fil du temps. Ne l’utilisez jamais à des fins d’autorisation ou pour enregistrer des données pour un utilisateur. Si vous avez besoin d’une adresse e-mail adressable dans votre application, demandez ces données directement à l’utilisateur en utilisant cette revendication comme suggestion ou pré-remplissez votre UX. Sur le point de terminaison v2.0, votre application peut également demander l’étendue OpenID Connect : vous n’avez pas besoin de demander à la fois la revendication facultative et l’étendue pour obtenir la revendication.
Chaîne La revendication fournit une valeur lisible par l’homme qui identifie le sujet du jeton. Il n’est pas garanti que la valeur soit unique, elle peut être modifiée et ne doit être utilisée qu’à des fins d’affichage. Le champ d’application est requis pour recevoir cette réclamation.
Chaîne Le nonce correspond au paramètre inclus dans la demande d’autorisation d’origine adressée au fournisseur d’identités. Si ce n’est pas le cas, votre l’application doit rejeter le jeton.
Chaîne, GUID Identificateur immuable d’un objet, dans ce cas, un compte d’utilisateur. Cet ID identifie de manière unique l’utilisateur dans toutes les applications : deux applications différentes qui se connectent au même utilisateur reçoivent la même valeur dans la revendication. Microsoft Graph renvoie cet ID en tant que propriété d’un compte d’utilisateur. Étant donné que le permet à plusieurs applications de corréler les utilisateurs, l’étendue est requise pour recevoir cette revendication. S’il existe un seul utilisateur dans plusieurs locataires, l’utilisateur contient un ID d’objet différent dans chaque locataire : ils sont considérés comme des comptes différents, même si l’utilisateur se connecte à chaque compte avec les mêmes informations d’identification. La revendication est un GUID et ne peut pas être réutilisée.
Tableau de chaînes Ensemble des rôles attribués à l’utilisateur qui se connecte.
Chaîne opaque An revendication interne utilisée pour revalider les jetons. Devrait être ignoré.
String L’objet de l’information dans le jeton. Par exemple, l’utilisateur d’une application. Cette valeur est immuable et ne peut pas être réaffectée ou réutilisée. L’objet est un identificateur par paire et est unique à un ID d’application. Si un seul utilisateur se connecte à deux applications différentes à l’aide de deux ID client différents, ces applications reçoivent deux valeurs différentes pour la revendication d’objet. Vous pouvez ou non vouloir deux valeurs en fonction de votre architecture et de vos exigences en matière de confidentialité.
Chaîne, GUID Représente le locataire auquel l’utilisateur se connecte. Pour les comptes professionnels et scolaires, le GUID est l’ID de locataire immuable de l’organisation à laquelle l’utilisateur se connecte. Pour les connexions au locataire du compte Microsoft personnel (services tels que Xbox, Teams à vie ou Outlook), la valeur est .
Chaîne Uniquement présente dans les jetons v1.0. Fournit une valeur lisible par l’homme qui identifie l’objet du jeton. Il n’est pas garanti que cette valeur soit unique au sein d’un locataire et ne doit être utilisée qu’à des fins d’affichage.
Revendication d’identificateur de jeton de chaîne, équivalente à dans la spécification JWT. Identificateur unique, par jeton, sensible à la casse.
Chaîne, 1.0 ou 2.0 Indique la version du jeton d’ID.
Booléen S’il est présent, toujours true, indiquant que l’utilisateur fait partie d’au moins un groupe. Indique que le client doit utiliser l’API Microsoft Graph pour déterminer les groupes de l’utilisateur ().
Objet JSON Pour les demandes de jeton dont la longueur n’est pas limitée (voir ) mais qui sont encore trop volumineuses pour le jeton, un lien vers la liste complète des groupes de l’utilisateur est inclus. Pour les JWT en tant que revendication distribuée, pour SAML en tant que nouvelle revendication à la place de la revendication.

Exemple de valeur JWT :



Pour plus d’informations, consultez la section Demande de dépassement de limite de production de groupes.

Lors

de l’identification d’un utilisateur, il est essentiel d’utiliser des informations qui restent constantes et uniques dans le temps. Les applications héritées utilisent parfois des champs tels que l’adresse e-mail, le numéro de téléphone ou l’UPN. Tous ces champs peuvent changer au fil du temps et peuvent également être réutilisés au fil du temps. Par exemple, lorsqu’un employé change de nom ou qu’un employé reçoit une adresse e-mail qui correspond à celle d’un employé précédent qui n’est plus présent. Votre application ne doit pas utiliser de données lisibles par l’homme pour identifier un utilisateur : lisibles par l’homme signifient généralement que quelqu’un peut les lire et vouloir les modifier. Utilisez plutôt les revendications fournies par la norme OIDC, ou les revendications d’extension fournies par Microsoft - les et les revendications.

Pour stocker correctement les informations par utilisateur, utilisez ou seul (qui, en tant que GUID, sont uniques), avec utilisé pour le routage ou le partitionnement si nécessaire. Si vous avez besoin de partager des données entre les services, et il est préférable que toutes les applications obtiennent la même chose et revendique pour un utilisateur agissant dans un locataire. L’affirmation est une valeur par paire qui est unique. La valeur est basée sur une combinaison du destinataire du jeton, du locataire et de l’utilisateur. Deux applications qui demandent des jetons d’ID pour un utilisateur reçoivent des revendications différentes, mais les mêmes revendications pour cet utilisateur.

Remarque

N’utilisez pas la revendication pour stocker des informations sur un utilisateur dans le but de corréler les utilisateurs entre les locataires. Cela ne fonctionne pas, car le et prétend qu’un changement d’utilisateur entre les locataires, par conception, pour s’assurer que les applications ne peuvent pas suivre les utilisateurs entre les locataires.

Scénarios d’invité, où un utilisateur est hébergé dans un locataire et s’authentifie dans un autre, doit traiter l’utilisateur comme s’il était un nouvel utilisateur du service. Vos documents et privilèges dans un locataire ne doivent pas s’appliquer dans un autre locataire. Cette restriction est importante pour éviter les fuites de données accidentelles entre les locataires et l’application des cycles de vie des données. L’expulsion d’un invité d’un locataire doit également supprimer son accès aux données qu’il a créées dans ce locataire.

Pour

s’assurer que la taille du jeton ne dépasse pas les limites de taille d’en-tête HTTP, le nombre d’ID d’objet qu’il inclut dans la revendication est limité. Si un utilisateur est membre d’un nombre de groupes supérieur à la limite de dépassement (150 pour les jetons SAML, 200 pour les jetons JWT), la revendication du groupe n’est pas incluse dans le jeton. Au lieu de cela, il inclut une réclamation de dépassement dans le jeton qui indique à l’application d’interroger l’API Microsoft Graph pour récupérer l’appartenance au groupe de l’utilisateur.

Prochaines étapes


Supplémentaire ressources