Informations de référence sur les revendications de jeton d’accès
Les jetons d’accès sont des jetons Web JSON (JWT). Les JWT contiennent les éléments suivants :
- En-tête : fournit des informations sur la façon de valider le jeton, dont des informations sur le type du jeton et sa méthode de signature.
- Charge utile : contient toutes les données importantes concernant l’utilisateur ou l’application qui tente d’appeler le service.
- Signature : ressource de base utilisée pour valider le jeton.
Chaque pièce est séparée par un point (.
) et codée séparément en Base 64.
Les revendications ne sont présentes que lorsqu’elles sont renseignées par une valeur. Une application ne doit pas dépendre de la présence d’une revendication. Exemples : pwd_exp
(tous les locataires n’ont pas besoin que leur mot de passe expire) ou family_name
(les flux d’ informations d’identification client se font au nom d’applications qui ne portent pas de noms). Le jeton d’accès contient toujours suffisamment de revendications pour l’évaluation de l’accès.
La plateforme d’identités Microsoft utilise certaines revendications pour permettre de sécuriser la réutilisation des jetons. La description de Opaque
indique que ces revendications ne sont pas destinées à la consommation publique. Ces revendications peuvent apparaître ou non dans un jeton, et de nouvelles revendications peuvent être ajoutées sans préavis.
Revendications de l’en-tête
Revendication | Format | Description |
---|---|---|
typ |
Chaîne : toujours JWT |
Indique que le jeton est un JWT. |
alg |
String | Indique l’algorithme utilisé pour signer le jeton, par exemple RS256 . |
kid |
String | Spécifie l’empreinte de la clé publique utilisée pour valider la signature du jeton. Émis dans les jetons d’accès v1.0 et v2.0. |
x5t |
String | Fonctions identiques (en utilisation et en valeur) à kid . x5t est une revendication héritée émise uniquement dans les jetons d’accès v1.0 à des fins de compatibilité. |
Revendications de la charge utile
Revendication | Format | Description | Considérations relatives aux autorisations |
---|---|---|---|
acrs |
Tableau de chaînes JSON | Indique les ID de contexte d'authentification des opérations que le porteur est autorisé à effectuer. Les ID de contexte d'authentification peuvent être utilisés pour déclencher une demande d'authentification renforcée depuis votre application et vos services. Souvent utilisé avec la revendication xms_cc . |
|
aud |
Chaîne, URI d’ID d’application ou GUID | Identifie l’audience ciblée du jeton. Dans les jetons v2.0, cette valeur est toujours l’ID client de l’API. Dans les jetons v1.0, il peut s’agir de l’ID client ou de l’URI de ressource utilisé dans la demande. La valeur peut dépendre de la façon dont le client a demandé le jeton. | Cette valeur doit être validée. Rejetez le jeton si la valeur ne correspond pas au public concerné. |
iss |
Chaîne, URI de service de jeton de sécurité (STS) | Identifie le service d’émission de jeton de sécurité (STS) qui construit et retourne le jeton, ainsi que le locataire Microsoft Entra de l’utilisateur authentifié. Si le jeton émis est un jeton v2.0 (consultez la revendication ver ), l’URI se termine par /v2.0 . La partie GUID qui indique que l’utilisateur est un utilisateur consommateur d’un compte Microsoft est 9188040d-6c67-4c5b-b112-36a304b66dad . |
L’application peut utiliser la partie GUID de la revendication pour restreindre l’ensemble des locataires qui peuvent se connecter à l’application, le cas échéant. |
idp |
Chaîne, généralement un URI STS | Enregistre le fournisseur d’identité qui a authentifié le sujet du jeton. Cette valeur est identique à la valeur de la revendication de l’émetteur sauf si le compte d’utilisateur n’est pas dans le même locataire que l’émetteur, comme les invités. Utilisez la valeur de iss si la revendication n’est pas présente. Pour les comptes personnels utilisés dans un contexte organisationnel (par exemple, un compte personnel invité dans un locataire Microsoft Entra), la revendication idp peut être « live.com » ou un URI STS contenant le locataire de compte Microsoft 9188040d-6c67-4c5b-b112-36a304b66dad . |
|
iat |
int, horodatage UNIX | Indique quand l’authentification de ce jeton a eu lieu. | |
nbf |
int, horodatage UNIX | Spécifie l’heure après laquelle le JWT peut être traité. | |
exp |
int, horodatage UNIX | Indique le délai d’expiration avant lequel le jeton JWT peut être accepté pour traitement. Une ressource peut également rejeter le jeton avant cette heure. Le rejet peut se produire pour une modification requise de l’authentification ou lorsqu’un jeton est révoqué. | |
aio |
Chaîne opaque | Revendication interne utilisée par Microsoft Entra ID pour enregistrer des données afin de réutiliser les jetons. Les ressources ne doivent pas utiliser cette revendication. | |
acr |
Chaîne, un 0 ou un 1 , présente uniquement dans les jetons v1.0 |
La valeur 0 de la revendication « Classe de contexte d’authentification » indique que l’authentification de l’utilisateur final n’a pas répondu aux exigences de la norme ISO/CEI 29115. |
|
amr |
Tableau JSON de chaînes, présent uniquement dans les jetons v1.0 | Identifie la méthode d’authentification de l’objet du jeton. | |
appid |
Chaîne, un GUID, présente uniquement dans les jetons v1.0 | ID de l’application du client utilisant le jeton. L'application peut agir pour elle-même ou pour le compte d'un utilisateur. L’ID d’application représente généralement un objet d’application, mais elle peut également représenter un objet du principal du service dans Microsoft Entra ID. | appid peut être utilisé dans les décisions d’autorisation. |
azp |
Chaîne, un GUID, présente uniquement dans les jetons v2.0 | Remplacement pour appid . ID de l’application du client utilisant le jeton. L'application peut agir pour elle-même ou pour le compte d'un utilisateur. L’ID d’application représente généralement un objet d’application, mais elle peut également représenter un objet du principal du service dans Microsoft Entra ID. |
azp peut être utilisé dans les décisions d’autorisation. |
appidacr |
Chaîne, un 0 , un 1 ou un 2 , présente uniquement dans les jetons v1.0 |
Indique la méthode d’authentification du client. Pour un client public, la valeur est 0 . Lorsque vous utilisez l’ID client et la clé secrète client, la valeur est 1 . Si un certificat client a été utilisé pour l’authentification, la valeur est 2 . |
|
azpacr |
Chaîne, un 0 , un 1 ou un 2 , présente uniquement dans les jetons v2.0 |
Remplacement pour appidacr . Indique la méthode d’authentification du client. Pour un client public, la valeur est 0 . Lorsque vous utilisez l’ID client et la clé secrète client, la valeur est 1 . Si un certificat client a été utilisé pour l’authentification, la valeur est 2 . |
|
preferred_username |
Chaîne, présente uniquement dans les jetons v2.0. | Nom d’utilisateur principal qui représente l’utilisateur. La valeur peut être une adresse e-mail, un numéro de téléphone ou un nom d’utilisateur générique sans format spécifié. Utilisez la valeur pour des indices sur le nom d’utilisateur et en tant que nom d’utilisateur dans une interface utilisateur lisible à l’œil. Pour recevoir cette revendication, utilisez l’étendue profile . |
Cette valeur étant mutable, ne l’utilisez pas pour prendre des décisions d’autorisation. |
name |
String | Fournit une valeur contrôlable de visu qui identifie le sujet du jeton. La valeur peut varier, elle est mutable et elle est destinée uniquement à des fins d’affichage. Pour recevoir cette revendication, utilisez l’étendue profile . |
N’utilisez pas cette valeur pour prendre des décisions d’autorisation. |
scp |
Chaîne, liste d’étendues séparées par des espaces | Ensemble des étendues exposées par l’application pour lesquelles l’application client a demandé (et reçu) un consentement. Uniquement inclus pour les jetons utilisateur. | L’application doit vérifier la validité de ces étendues et prendre des décisions d’autorisation en fonction de leur valeur. |
roles |
Tableau de chaînes, une liste d’autorisations | Ensemble des autorisations exposées par l’application que l’application ou l’utilisateur faisant la demande sont autorisés à appeler. Le flux d’informations d’identification client utilise cet ensemble d’autorisations au lieu des étendues d’utilisateur pour les jetons d’application. Pour les jetons utilisateur, cet ensemble de valeurs contient les rôles attribués de l’utilisateur pour l’application cible. | Ces valeurs peuvent être utilisées pour la gestion des accès, par exemple, l’autorisation d’accès à une ressource. |
wids |
Tableau de GUID RoleTemplateID | Indique les rôles au niveau du locataire attribués à cet utilisateur, à partir de la section des rôles présents dans les rôles intégrés Microsoft Entra. La propriété groupMembershipClaims du manifeste d’application configure cette revendication selon chaque application. Définissez la revendication sur All ou DirectoryRole . |
Ces valeurs peuvent être utilisées pour la gestion des accès, par exemple, l’autorisation d’accès à une ressource. |
groups |
Tableau de GUID JSON | Fournit les ID d’objet qui représentent les appartenances aux groupes du sujet. La propriété groupMembershipClaims du manifeste d’application configure cette revendication de groupe selon chaque application. Une valeur null exclut tous les groupes, une valeur SecurityGroup inclut les rôles d’annuaire et les appartenances aux groupes de sécurité Active Directory, et une valeur All inclut les groupes de sécurité et les listes de distribution Microsoft 365. Pour les autres flux, si le nombre de groupes auxquels l’utilisateur appartient dépasse 150 pour SAML et 200 pour JWT, alors Microsoft Entra ID ajoute une revendication de dépassement aux sources de revendication. Les sources de revendication pointent sur le point de terminaison Microsoft Graph contenant la liste des groupes pour l’utilisateur. |
Ces valeurs peuvent être utilisées pour la gestion des accès, par exemple, l’autorisation d’accès à une ressource. |
hasgroups |
Boolean | Le cas échéant, toujours true , indique que l’utilisateur appartient à au moins un groupe. Indique que le client doit utiliser l’API Microsoft Graph pour déterminer les groupes de l’utilisateur (https://graph.microsoft.com/v1.0/users/{userID}/getMemberObjects ). |
|
groups:src1 |
Objet JSON | Inclut un lien vers la liste complète des groupes pour l’utilisateur lorsque les demandes de jeton sont trop conséquentes pour le jeton. Pour les jetons JWT en tant que revendication distribuée, pour SAML en tant que nouvelle revendication à la place de la revendication groups . Exemple de valeur JWT : "groups":"src1" "_claim_sources : "src1" : { "endpoint" : "https://graph.microsoft.com/v1.0/users/{userID}/getMemberObjects" } |
|
sub |
Chaîne | Le principal associé au jeton. Par exemple, l’utilisateur d’une application. Cette valeur est non modifiable. Ne pas la réaffecter ou la réutiliser. L’objet est un identificateur par paire spécifique à un ID d’application spécifique. Si un 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 du sujet. L’utilisation des deux valeurs différentes dépend des exigences d’architecture et de confidentialité. Consultez également la revendication oid qui reste la même pour toutes les applications d’un même locataire. |
Cette valeur peut être utilisée pour effectuer des vérifications d’autorisation, comme lorsque le jeton est utilisé pour accéder à une ressource, et peut servir de clé dans les tables de base de données. |
oid |
Chaîne, GUID | L’identificateur non modifiable pour le demandeur, qui correspond à l’identité vérifiée de l’utilisateur ou du principal de service. Cet ID identifie de manière unique le demandeur entre les applications. Deux applications différentes se connectant au même utilisateur reçoivent la même valeur dans la revendication oid . oid peut être utilisé lors de la formulation de requêtes auprès de services Microsoft en ligne, tels que Microsoft Graph. Microsoft Graph renvoie cet ID en tant que propriété id pour un compte d’utilisateur donné. Utilisez l’étendue profile pour recevoir cette revendication pour les utilisateurs, car oid permet à plusieurs applications de mettre les principaux en corrélation. Si un utilisateur existe dans plusieurs locataires, l’utilisateur contient un ID d’objet différent dans chaque locataire. Bien que l’utilisateur se connecte à chaque compte avec les mêmes informations d’identification, les comptes sont différents. |
Cette valeur peut être utilisée pour effectuer des vérifications d’autorisation, comme lorsque le jeton est utilisé pour accéder à une ressource, et peut servir de clé dans les tables de base de données. |
tid |
Chaîne, GUID | Représente le locataire auquel l’utilisateur se connecte. Pour les comptes professionnels et scolaires, le GUID correspond à l’ID de locataire immuable de l’organisation à laquelle l’utilisateur se connecte. Pour les connexions au locataire de compte Microsoft personnel (services tels que Xbox, Teams à usage personnel ou Outlook), la valeur est 9188040d-6c67-4c5b-b112-36a304b66dad . Pour recevoir cette revendication, l’application doit demander l’étendue profile . |
Cette valeur doit être prise en compte en combinaison avec d’autres revendications dans les décisions d’autorisation. |
unique_name |
Chaîne, présente uniquement dans les jetons v1.0 | Fournit une valeur contrôlable de visu qui identifie le sujet du jeton. | Cette valeur peut être différente au sein d’un locataire et peut l’utiliser uniquement à des fins d’affichage. |
uti |
String | Revendication d’identificateur de jeton, équivalente à jti dans la spécification JWT. Identificateur unique par jeton qui respecte la casse. |
|
rh |
Chaîne opaque | Revendication interne utilisée par Azure pour revalider des jetons. Les ressources ne doivent pas utiliser cette revendication. | |
ver |
Chaîne, 1.0 ou 2.0 |
Indique la version du jeton d’accès. | |
xms_cc |
Tableau de chaînes JSON | Indique si l’application cliente ayant acquis le jeton peut gérer les défis liés aux revendications. Il est souvent utilisé avec claim acrs . Cette revendication est couramment utilisée dans les scénarios d’Accès conditionnel et d’Évaluation continue de l’accès. Le serveur de ressources ou l'application de service pour laquelle le jeton est émis contrôle la présence de cette revendication dans un jeton. Une valeur de cp1 dans le jeton d'accès est le moyen faisant autorité pour identifier qu'une application cliente est capable de gérer une contestation de revendications. Pour plus d’informations, consultez Contestation des revendications, demandes de revendications et fonctionnalités du client. |
Remarque
Les revendications roles
, groups
, scp
et wids
ne constituent pas une liste exhaustive des façons dont une ressource peut autoriser un utilisateur ou une application, ni une liste exhaustive des autorisations accordées à l’appelant. La ressource cible peut utiliser une autre méthode pour autoriser l’accès à ses ressources protégées.
Revendication de dépassement des groupes
Microsoft Entra ID limite le nombre d’ID d’objet qu’il inclut dans la revendication de groupes pour rester dans la limite de taille de l’en-tête HTTP. Si un utilisateur est membre d’un nombre de groupes qui dépasse la limite maximale (150 pour les jetons SAML, 200 pour les jetons JWT), Microsoft Entra ID n’émet pas la revendication des groupes dans le jeton. Au lieu de cela, il inclut une revendication de dépassement dans le jeton qui indique à l’application d’interroger l’API Microsoft Graph pour récupérer l’appartenance de groupe de l’utilisateur.
{
...
"_claim_names": {
"groups": "src1"
},
"_claim_sources": {
"src1": {
"endpoint": "[Url to get this user's group membership from]"
}
}
...
}
Utilisez la valeur BulkCreateGroups.ps1
fournie dans le dossier App Creation Scripts pour aider à tester les scénarios de dépassement.
Remarque
L’URL retournée est une URL Azure AD Graph (c’est à dire, graph.windows.net). Au lieu de s’appuyer sur cette URL, les services doivent plutôt utiliser la revendication facultative idtyp
(qui identifie si le jeton est une application ou un jeton d’application+utilisateur) pour construire une URL Microsoft Graph pour interroger la liste complète des groupes.
Revendications de base v1.0
Les jetons v1.0 comprennent les revendications suivantes, le cas échéant, mais pas les jetons v2.0 par défaut. Pour utiliser ces revendications pour v2.0, l’application les demande à l’aide de revendications facultatives.
Revendication | Format | Description |
---|---|---|
ipaddr |
String | Adresse IP à partir de laquelle l’utilisateur s’est authentifié. |
onprem_sid |
Chaîne, au format SID | Lorsque l’utilisateur dispose d’une authentification locale, cette revendication fournit son SID. Utilisez cette revendication pour l’autorisation dans des applications héritées. |
pwd_exp |
int, horodatage UNIX | Indique la date d’expiration du mot de passe de l’utilisateur. |
pwd_url |
String | Une URL avec laquelle les utilisateurs peuvent réinitialiser leurs mots de passe. |
in_corp |
boolean | Indique si le client se connecte à partir du réseau d’entreprise. |
nickname |
String | Autre nom de l’utilisateur, distinct du nom de famille et du prénom. |
family_name |
String | Fournit le nom de famille de l’utilisateur tel que défini sur l’objet utilisateur. |
given_name |
String | Fournit le prénom de l’utilisateur tel que défini sur l’objet utilisateur. |
upn |
String | Nom d’utilisateur. Il peut s’agir d’un numéro de téléphone, d’une adresse électronique ou d’une chaîne non formatée. Utilisez-la uniquement à des fins d’affichage et pour fournir des indices de nom d'utilisateur dans des scénarios de réauthentification. |
Revendication amr
Les identités peuvent s’authentifier de différentes manières appropriées à l’application. La revendication amr
est un tableau pouvant contenir plusieurs éléments, par exemple ["mfa", "rsa", "pwd"]
, pour les authentifications qui utilisent à la fois un mot de passe et l’application Authenticator.
Valeur | Description |
---|---|
pwd |
Authentification par mot de passe : mot de passe Microsoft d’un utilisateur ou clé secrète client d’une application. |
rsa |
L’authentification reposait sur la preuve d’une clé RSA, par exemple avec l’application Microsoft Authenticator. Cette valeur indique également l’utilisation dans l’authentification d’un jeton JWT autosigné avec un certificat X509 appartenant à un service. |
otp |
Code secret à usage unique utilisant un e-mail ou un SMS. |
fed |
Indique l’utilisation d’une assertion d’authentification fédérée (JWT ou SAML, par exemple). |
wia |
Authentification Windows intégrée |
mfa |
Indique l’utilisation de l’authentification multifacteur. Comprend d’autres méthodes d’authentification lorsque cette revendication est présente. |
ngcmfa |
Équivalente à mfa , utilisée pour le provisionnement de certains types avancés d’informations d’identification. |
wiaormfa |
L’utilisateur a utilisé Windows ou un identifiant MFA pour s’authentifier. |
none |
Indique qu’aucune authentification n’est terminée. |
Étapes suivantes
- En savoir plus sur les jetons d’accès utilisés dans Microsoft Entra ID.