Exemple de jeton daccès à lapi
Microsoft Graph est une API web protégée permettant d’accéder aux données dans les services cloud Microsoft tels que Microsoft Entra ID et Microsoft 365. Il est protégé par la plateforme d’identité Microsoft, qui utilise des jetons d’accès OAuth pour vérifier qu’une application est autorisée à appeler Microsoft Graph.
Cet article fournit une vue d’ensemble de la plateforme d’identités Microsoft, des jetons d’accès et de la façon dont votre application peut obtenir des jetons d’accès. Pour plus d’informations sur la plateforme d’identités Microsoft, consultez Qu’est-ce que la plateforme d’identités Microsoft ?. Si vous savez comment intégrer une application à la plateforme d’identités Microsoft pour obtenir des jetons, consultez les exemples de code de la plateforme d’identités Microsoft pour plus d’informations et des exemples spécifiques à Microsoft Graph.
Inscrire l’application
Avant que votre application puisse obtenir un jeton d’accès à partir de la plateforme d’identités Microsoft, elle doit être inscrite dans le centre d’administration Microsoft Entra. L’inscription intègre votre application à la plateforme d’identités Microsoft et établit les informations qu’elle utilise pour obtenir des jetons, notamment :
- ID d’application : identificateur unique attribué par la plateforme d’identités Microsoft.
- URI/URL de redirection : un ou plusieurs points de terminaison auxquels votre application reçoit des réponses de la plateforme d’identité Microsoft. (Pour les applications natives et mobiles, l’URI est attribué par la plateforme d’identité Microsoft.)
- Clé secrète client : mot de passe que votre application utilise pour s’authentifier auprès de la plateforme d’identités Microsoft. Vous pouvez éventuellement utiliser un certificat ou des informations d’identification d’identité fédérée. Cette propriété n’est pas requise pour les clients publics tels que les applications natives, mobiles et monopages.
Pour plus d’informations, consultez Enregistrer une application auprès de l' Plateforme d’identités Microsoft.
Scénarios d’accès
La méthode utilisée par une application pour s’authentifier auprès de la plateforme d’identités Microsoft dépend de la façon dont vous souhaitez que l’application accède aux données. Cet accès peut se faire de l’une des deux manières suivantes, comme illustré dans l’image suivante.
- Accès délégué , une application agissant pour le compte d’un utilisateur connecté.
- Accès à l’application uniquement , une application agissant avec sa propre identité.
Accès délégué (accès pour le compte d’un utilisateur)
Dans ce scénario d’accès, un utilisateur s’est connecté à une application cliente et l’application cliente appelle Microsoft Graph pour le compte de l’utilisateur. Le client et l’utilisateur doivent être autorisés à effectuer la demande .
L’accès délégué nécessite des autorisations déléguées , également appelées étendues . Les étendues sont des autorisations qui sont exposées par une ressource donnée et elles représentent les opérations qu’une application peut effectuer pour le compte d’un utilisateur.
Étant donné que l’application et l’utilisateur doivent être autorisés à effectuer la demande, la ressource accorde à l’application cliente les autorisations déléguées pour que l’application cliente puisse accéder aux données au nom de l’utilisateur spécifié. Pour l’utilisateur, les actions qu’il peut effectuer sur la ressource dépendent des autorisations dont il dispose pour accéder à la ressource. Par exemple, l’utilisateur peut être le propriétaire de la ressource ou se voir attribuer un rôle particulier par le biais d’un système de contrôle d’accès basé sur les rôles (RBAC) tel que Microsoft Entra RBAC.
Remarque Les
points de terminaison et les API avec l’alias fonctionnent uniquement sur l’utilisateur connecté et sont donc appelés dans les scénarios d’accès délégué.
Accès uniquement à l’application (accès sans utilisateur)
Dans cet accès scénario, l’application peut interagir avec les données par elle-même, sans qu’un utilisateur ne soit connecté. L’accès aux applications uniquement est utilisé dans des scénarios tels que l’automatisation et la sauvegarde, et est principalement utilisé par les applications qui s’exécutent en tant que services d’arrière-plan ou démons. Il convient lorsqu’il n’est pas souhaitable qu’un utilisateur soit connecté ou lorsque les données requises ne peuvent pas être limitées à un seul utilisateur.
Les applications obtiennent des privilèges pour appeler Microsoft Graph avec leur propre identité de l’une des manières suivantes :
- Lorsque l’application se voit attribuer des autorisations d’application , également appelées rôles d’application
- Lorsque l’application se voit attribuer la propriété de la ressource qu’elle a l’intention de gérer
Remarque
Une application peut également obtenir des privilèges par le biais d’autorisations accordées par un système de contrôle d’accès basé sur les rôles, tel que Microsoft Entra RBAC.
Autorisations Microsoft Graph
Microsoft Graph expose des autorisations granulaires qui contrôlent l’accès des applications aux ressources Microsoft Graph, telles que les utilisateurs, les groupes et la messagerie. En tant que développeur, vous décidez des autorisations Microsoft Graph à demander pour votre application en fonction du scénario d’accès et des opérations que vous souhaitez effectuer.
Microsoft Graph expose deux types d’autorisations pour les scénarios d’accès pris en charge :
- Autorisations déléguées : également appelées étendues , permettent à l’application d’agir au nom de l’utilisateur connecté.
- Autorisations d’application : également appelées rôles d’application , permettent à l’application d’accéder aux données par elle-même, sans utilisateur connecté.
Lorsqu’un utilisateur se connecte à une application, celle-ci doit spécifier les autorisations dont elle a besoin pour être incluse dans le jeton d’accès. Ces autorisations
- peuvent être préautorisées pour l’application par un administrateur.
- Peut être consenti directement par l’utilisateur.
- S’il n’est pas préautorisé, il peut être nécessaire de disposer de privilèges d’administrateur pour donner son consentement. Par exemple, pour les autorisations ayant un impact potentiel plus important sur la sécurité.
Pour plus d’informations sur les autorisations et le consentement, consultez Présentation des autorisations et du consentement.
Remarque
Il est recommandé de demander les autorisations les moins privilégiées dont votre application a besoin pour accéder aux données et fonctionner correctement. Demander des autorisations avec plus de privilèges que les privilèges nécessaires est une mauvaise pratique de sécurité, qui peut amener les utilisateurs à ne pas donner leur consentement et affecter l’utilisation de votre application.
Pour plus d’informations sur les autorisations Microsoft Graph et leur utilisation, consultez Vue d’ensemble des autorisations Microsoft Graph.
Jetons d’accès
Une application effectue une demande d’authentification auprès de Microsoft pour obtenir des jetons d’accès qu’il utilise pour appeler une API, telle que Microsoft Graph. Les jetons d’accès émis par la plateforme d’identités Microsoft contiennent des revendications qui sont des détails sur l’application et, dans les scénarios d’accès délégué, sur l’utilisateur. Les API web sécurisées par la plateforme d’identités Microsoft, telles que Microsoft Graph, utilisent les revendications pour valider l’appelant et s’assurer que celui-ci dispose des privilèges appropriés pour effectuer l’opération qu’il demande. L’appelant doit traiter les jetons d’accès comme des chaînes opaques, car le contenu du jeton est destiné à l’API uniquement. Lorsque vous appelez Microsoft Graph, protégez toujours les jetons d’accès en les transmettant via un canal sécurisé qui utilise la sécurité de la couche de transport (TLS).
Les jetons d’accès sont une sorte de jeton de sécurité fourni par la plateforme d’identité Microsoft. Ils sont de courte durée, mais avec des durées de vie par défaut variables.
Pour appeler Microsoft Graph, l’application effectue une demande d’autorisation en attachant le jeton d’accès en tant que jeton porteur à l’en-tête Authorization dans une demande HTTP. Par exemple, l’appel suivant qui retourne les informations de profil de l’utilisateur connecté (le jeton d’accès a été raccourci pour plus de lisibilité) :
Pour en savoir plus sur les jetons d’accès de la plateforme d’identités Microsoft, consultez Jetons d’ID dans la plateforme d’identités Microsoft.
Obtenir un jeton d’accès
Nous vous recommandons d’utiliser des bibliothèques d’authentification pour gérer vos interactions de jeton avec la plateforme d’identités Microsoft. Microsoft publie des bibliothèques clientes open source et des middlewares de serveur.
Pour le point de terminaison de la plateforme d’identités Microsoft :
- Les bibliothèques clientes MSAL (Microsoft Authentication Library) sont disponibles pour diverses infrastructures, y compris pour . Toutes les plateformes sont en préversion prise en charge par la production et, en cas d’introduction de modifications cassantes, Microsoft garantit un chemin d’accès à la mise à niveau. Le
- middleware de serveur de Microsoft est disponible pour .NET Core et ASP.NET (OWIN, OpenID Connect et OAuth) et pour Node.js (Microsoft Identity Platform Passport.js).
- La plateforme d’identités Microsoft est également compatible avec de nombreuses bibliothèques d’authentification tierces.
Pour obtenir la liste complète des bibliothèques clientes Microsoft, des intergiciels de serveur Microsoft et des bibliothèques tierces compatibles, consultez la documentation de la plateforme d’identités Microsoft.
Vous n’avez pas besoin d’utiliser une bibliothèque d’authentification pour obtenir un jeton d’accès. Pour en savoir plus sur l’utilisation directe des points de terminaison de la plateforme d’identités Microsoft sans l’aide d’une bibliothèque d’authentification, consultez les articles suivants :