Informations de base sur l’authentification et l’autorisation

Microsoft Graph est une API web protégée qui permet d’accéder aux données dans des services cloud Microsoft tels que Microsoft Entra ID et Microsoft 365. Il est protégé par le Plateforme d'identités 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, de l’accès aux jetons 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 Plateforme d'identités Microsoft pour obtenir des informations et des exemples spécifiques à Microsoft Graph.

Inscription de l’application

Pour que votre application puisse obtenir un jeton d’accès à partir du Plateforme d'identités Microsoft, il doit être inscrit 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 de l’application : identifiant 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és Microsoft. (Pour les applications natives et mobiles, l’URI est attribué par le Plateforme d'identités Microsoft.)
  • Clé secrète client : mot de passe utilisé par votre application pour s’authentifier auprès du 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 obligatoire pour les clients publics tels que les applications natives, mobiles et monopage.

Pour plus d’informations, consultez Inscrire une application avec le Plateforme d'identités Microsoft.

Scénarios d’accès

La méthode utilisée par une application pour s’authentifier auprès de l’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 être de l’une des deux manières, 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é.

Illustration des scénarios d’accès délégué et d’application uniquement dans le Plateforme d'identités Microsoft.

Accès délégué (accès au nom 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 au nom 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 qui 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 tous deux 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 un rôle particulier peut lui être attribué via un système de contrôle d’accès en fonction du rôle (RBAC) tel que Microsoft Entra RBAC.

Remarque

Les points de terminaison et les API avec l’alias /me fonctionnent uniquement sur l’utilisateur connecté et sont donc appelés dans les scénarios d’accès délégué.

Accès aux applications uniquement (accès sans utilisateur)

Dans ce scénario d’accès, l’application peut interagir avec les données seule, sans utilisateur 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 ou démons en arrière-plan. Il convient lorsqu’il n’est pas souhaitable qu’un utilisateur se connecte ou que les données requises ne peuvent pas être étendues à 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 via des autorisations accordées par un système de contrôle d’accès en fonction du rôle tel que Microsoft Entra RBAC.

Autorisations de 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, l’application doit spécifier les autorisations dont elle doit être incluse dans le jeton d’accès. Ces autorisations :

  • Peut être préautorisé pour l’application par un administrateur.
  • Peut être accepté directement par l’utilisateur.
  • S’il n’est pas préautorisé, peut nécessiter des privilèges d’administrateur pour accorder le consentement. Par exemple, pour les autorisations avec un plus grand impact potentiel 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 préférable de demander les autorisations les moins privilégiés dont votre application a besoin pour accéder aux données et fonctionner correctement. La demande d’autorisations autres que les privilèges nécessaires est une pratique de sécurité médiocre, qui peut empêcher les utilisateurs de donner leur consentement et d’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 à l’Plateforme d'identités Microsoft pour obtenir les jetons d’accès qu’elle utilise pour appeler une API, telle que Microsoft Graph. Les jetons d’accès que le Plateforme d'identités Microsoft émet contiennent des revendications qui sont des détails sur l’application et, dans les scénarios d’accès délégué, l’utilisateur. Les API web sécurisées par les Plateforme d'identités Microsoft, telles que Microsoft Graph, utilisent les revendications pour valider l’appelant et s’assurer que l’appelant 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 sur un canal sécurisé qui utilise le protocole TLS (Transport Layer Security).

L’exemple suivant montre un jeton d’accès à la Plateforme d’identités Microsoft pour développeur :

eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiIsImtpZCI6Imk2bEdrM0ZaenhSY1ViMkMzbkVRN3N5SEpsWSJ9.eyJhdWQiOiI2ZTc0MTcyYi1iZTU2LTQ4NDMtOWZmNC1lNjZhMzliYjEyZTMiLCJpc3MiOiJodHRwczovL2xvZ2luLm1pY3Jvc29mdG9ubGluZS5jb20vNzJmOTg4YmYtODZmMS00MWFmLTkxYWItMmQ3Y2QwMTFkYjQ3L3YyLjAiLCJpYXQiOjE1MzcyMzEwNDgsIm5iZiI6MTUzNzIzMTA0OCwiZXhwIjoxNTM3MjM0OTQ4LCJhaW8iOiJBWFFBaS84SUFBQUF0QWFaTG8zQ2hNaWY2S09udHRSQjdlQnE0L0RjY1F6amNKR3hQWXkvQzNqRGFOR3hYZDZ3TklJVkdSZ2hOUm53SjFsT2NBbk5aY2p2a295ckZ4Q3R0djMzMTQwUmlvT0ZKNGJDQ0dWdW9DYWcxdU9UVDIyMjIyZ0h3TFBZUS91Zjc5UVgrMEtJaWpkcm1wNjlSY3R6bVE9PSIsImF6cCI6IjZlNzQxNzJiLWJlNTYtNDg0My05ZmY0LWU2NmEzOWJiMTJlMyIsImF6cGFjciI6IjAiLCJuYW1lIjoiQWJlIExpbmNvbG4iLCJvaWQiOiI2OTAyMjJiZS1mZjFhLTRkNTYtYWJkMS03ZTRmN2QzOGU0NzQiLCJwcmVmZXJyZWRfdXNlcm5hbWUiOiJhYmVsaUBtaWNyb3NvZnQuY29tIiwicmgiOiJJIiwic2NwIjoiYWNjZXNzX2FzX3VzZXIiLCJzdWIiOiJIS1pwZmFIeVdhZGVPb3VZbGl0anJJLUtmZlRtMjIyWDVyclYzeERxZktRIiwidGlkIjoiNzJmOTg4YmYtODZmMS00MWFmLTkxYWItMmQ3Y2QwMTFkYjQ3IiwidXRpIjoiZnFpQnFYTFBqMGVRYTgyUy1JWUZBQSIsInZlciI6IjIuMCJ9.pj4N-w_3Us9DrBLfpCt

Les jetons d’accès sont un type de jeton de sécurité fourni par le Plateforme d'identités Microsoft. Elles 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 du porteur à l’en-tête Authorization dans une requête HTTP. Par exemple, l’appel suivant renvoie les informations de profil de l’utilisateur connecté (le jeton d’accès a été raccourci pour une meilleure lisibilité) :

GET https://graph.microsoft.com/v1.0/me/ HTTP/1.1
Host: graph.microsoft.com
Authorization: Bearer EwAoA8l6BAAU ... 7PqHGsykYj7A0XqHCjbKKgWSkcAg==

Obtenir un jeton d’accès

Nous vous recommandons d’utiliser des bibliothèques d’authentification pour gérer vos interactions avec les Plateforme d'identités Microsoft. Les bibliothèques d’authentification abstractionnt de nombreux détails de protocole, tels que la validation, la gestion des cookies, la mise en cache des jetons et la maintenance de connexions sécurisées, ce qui vous permet de concentrer votre développement sur les fonctionnalités de votre application. Microsoft publie des bibliothèques clientes open source et des intergiciels 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, notamment pour .NET, JavaScript, Android et iOS. Toutes les plateformes sont en préversion prise en charge par la production et, si des modifications cassants sont introduites, Microsoft garantit un chemin de mise à niveau.
  • L’intergiciel serveur de Microsoft est disponible pour .NET Core et ASP.NET (OWIN OpenID Connect et OAuth) et pour Node.js (Plateforme d'identités Microsoft Passport.js).
  • Le 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 Plateforme d'identités Microsoft documentation.

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 Plateforme d'identités Microsoft sans l’aide d’une bibliothèque d’authentification, consultez les articles suivants :