Microsoft Graph : principes de base de l’authentification et de l’autorisationAuthentication and authorization basics for Microsoft Graph

Pour appeler Microsoft Graph, votre application doit se procurer un jeton d’accès auprès de la Plateforme d’identités Microsoft.To call Microsoft Graph, your app must acquire an access token from the Microsoft identity platform. Le jeton d’accès contient des informations sur votre application et les autorisations dont elle dispose pour les ressources et les API disponibles via Microsoft Graph.The access token contains information about your app and the permissions it has for the resources and APIs available through Microsoft Graph. Pour obtenir un jeton d’accès, votre application doit être inscrite sur la Plateforme d’identités Microsoft et être autorisée par un utilisateur ou un administrateur à accéder aux ressources Microsoft Graph dont elle a besoin.To get an access token, your app must be registered with the Microsoft identity platform and be authorized by either a user or an administrator for access to the Microsoft Graph resources it needs.

Cette rubrique fournit une vue d’ensemble des jetons d’accès, de la Plateforme d’identités Microsoft et de la façon dont votre application peut obtenir des jetons d’accès.This topic provides an overview of access tokens, the Microsoft identity platform, and how your app can get access tokens. Si vous savez déjà intégrer une application à la Plateforme d’identités Microsoft pour obtenir des jetons, reportez-vous à la section Étapes suivantes pour accéder à des informations et à des exemples propres à Microsoft Graph.If you are already familiar with integrating an app with the Microsoft identity platform to get tokens, see the Next Steps section for information and samples specific to Microsoft Graph.

Jetons d’accèsAccess tokens

Les jetons d’accès émis par la plateforme d’identité Microsoft contiennent des informations (revendications) que les API web sécurisées par la Plateforme d’identités Microsoft, comme Microsoft Graph, utilisent pour valider l’appelant et s’assurer que celui-ci dispose des autorisations nécessaires pour effectuer l’opération demandée.Access tokens issued by the Microsoft identity platform contain information (claims) that web APIs secured by the Microsoft identity platform, such as Microsoft Graph, use to validate the caller and to ensure that the caller has the proper permissions to perform the operation they're requesting. Lorsque vous appelez Microsoft Graph, vous devez traiter les jetons d’accès comme des jetons opaques.When calling Microsoft Graph, you should treat access tokens as opaque. Vous devez toujours transmettre les jetons d’accès sur un canal sécurisé, comme le protocole HTTPS.You must always transmit access tokens over a secure channel, such as transport layer security (HTTPS).

Voici un exemple de jeton d’accès de la Plateforme d’identités Microsoft :The following is an example of a Microsoft identity platform access token:

EwAoA8l6BAAU7p9QDpi/D7xJLwsTgCg3TskyTaQAAXu71AU9f4aS4rOK5xoO/SU5HZKSXtCsDe0Pj7uSc5Ug008qTI+a9M1tBeKoTs7tHzhJNSKgk7pm5e8d3oGWXX5shyOG3cKSqgfwuNDnmmPDNDivwmi9kmKqWIC9OQRf8InpYXH7NdUYNwN+jljffvNTewdZz42VPrvqoMH7hSxiG7A1h8leOv4F3Ek/oeJX6U8nnL9nJ5pHLVuPWD0aNnTPTJD8Y4oQTp5zLhDIIfaJCaGcQperULVF7K6yX8MhHxIBwek418rKIp11om0SWBXOYSGOM0rNNN59qNiKwLNK+MPUf7ObcRBN5I5vg8jB7IMoz66jrNmT2uiWCyI8MmYDZgAACPoaZ9REyqke+AE1/x1ZX0w7OamUexKF8YGZiw+cDpT/BP1GsONnwI4a8M7HsBtDgZPRd6/Hfqlq3HE2xLuhYX8bAc1MUr0gP9KuH6HDQNlIV4KaRZWxyRo1wmKHOF5G5wTHrtxg8tnXylMc1PKOtaXIU4JJZ1l4x/7FwhPmg9M86PBPWr5zwUj2CVXC7wWlL/6M89Mlh8yXESMO3AIuAmEMKjqauPrgi9hAdI2oqnLZWCRL9gcHBida1y0DTXQhcwMv1ORrk65VFHtVgYAegrxu3NDoJiDyVaPZxDwTYRGjPII3va8GALAMVy5xou2ikzRvJjW7Gm3XoaqJCTCExN4m5i/Dqc81Gr4uT7OaeypYTUjnwCh7aMhsOTDJehefzjXhlkn//2eik+NivKx/BTJBEdT6MR97Wh/ns/VcK7QTmbjwbU2cwLngT7Ylq+uzhx54R9JMaSLhnw+/nIrcVkG77Hi3neShKeZmnl5DC9PuwIbtNvVge3Q+V0ws2zsL3z7ndz4tTMYFdvR/XbrnbEErTDLWrV6Lc3JHQMs0bYUyTBg5dThwCiuZ1evaT6BlMMLuSCVxdBGzXTBcvGwihFzZbyNoX+52DS5x+RbIEvd6KWOpQ6Ni+1GAawHDdNUiQTQFXRxLSHfc9fh7hE4qcD7PqHGsykYj7A0XqHCjbKKgWSkcAg==

Pour appeler Microsoft Graph, vous devez joindre le jeton d’accès sous la forme d’un jeton porteur à l’en-tête d’autorisation dans une requête HTTP.To call Microsoft Graph, you attach the access token as a Bearer token to the Authorization header in an HTTP request. 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é) :For example, the following call that returns the profile information of the signed-in user (the access token has been shortened for readability):

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

Inscrire votre application sur la Plateforme d’identités MicrosoftRegister your app with the Microsoft identity platform

Pour pouvoir se procurer un jeton auprès de la Plateforme d’identités Microsoft, votre application doit d’abord être inscrite sur le portail Azure.Before your app can get a token from the Microsoft identity platform, it must be registered in the Azure portal. L’inscription intègre votre application à la Plateforme d’identités Microsoft et établit les informations qu’elle utilise pour obtenir des jetons, notamment :Registration integrates your app with the Microsoft identity platform and establishes the information that it uses to get tokens, including:

  • ID de l’application : identifiant unique attribué par la Plateforme d’identités Microsoft.Application ID: A unique identifier assigned by the Microsoft identity platform.
  • URI/URL de redirection : point(s) de terminaison sur le(s)quel(s) votre application recevra les réponses de la Plateforme d’identités Microsoft.Redirect URI/URL: One or more endpoints at which your app will receive responses from the Microsoft identity platform. (Pour les applications natives et mobiles, il s’agit d’un URI attribué par la Plateforme d’identités Microsoft.)(For native and mobile apps, this is a URI assigned by the Microsoft identity platform.)
  • Clé secrète de l’application : mot de passe ou paire clé publique/clé privée que votre application utilise pour l’authentification auprès de la Plateforme d’identités Microsoft.Application Secret: A password or a public/private key pair that your app uses to authenticate with the Microsoft identity platform. (Non nécessaire pour les applications natives ou mobiles).(Not needed for native or mobile apps.)

Les propriétés configurées lors de l’inscription sont utilisées dans la demande.The properties configured during registration are used in the request. Par exemple, dans la demande de jeton suivante : client_id est l’ID de l’application, redirect_uri est l’un des URI de redirection enregistrés pour votre application et client_secret est la clé secrète de l’application.For example, in the following token request: client_id is the Application ID, redirect_uri is one of your app's registered Redirect URIs, and client_secret is the Application Secret.

// Line breaks for legibility only

POST /common/oauth2/v2.0/token HTTP/1.1
Host: https://login.microsoftonline.com
Content-Type: application/x-www-form-urlencoded

client_id=6731de76-14a6-49ae-97bc-6eba6914391e
&scope=user.read%20mail.read
&code=OAAABAAAAiL9Kn2Z27UubvWFPbm0gLWQJVzCTE9UkP3pSx1aXxUjq3n8b2JRLk4OxVXr...
&redirect_uri=http%3A%2F%2Flocalhost%2Fmyapp%2F
&grant_type=authorization_code
&client_secret=JqQX2PNo9bpM0uEihUPzyrh    // NOTE: Only required for web apps

Autorisations Microsoft GraphMicrosoft Graph permissions

Microsoft Graph présente des autorisations précises qui contrôlent l’accès des applications aux ressources, comme les utilisateurs, les groupes et les messages.Microsoft Graph exposes granular permissions that control the access that apps have to resources, like users, groups, and mail. En tant que développeur, vous décidez quelles autorisations demander pour Microsoft Graph.As a developer, you decide which permissions to request for Microsoft Graph. Lorsqu’un utilisateur se connecte à votre application, celui-ci (ou un administrateur, selon le cas) a la possibilité de consentir à ces autorisations.When a user signs in to your app they, or, in some cases, an administrator, are given a chance to consent to these permissions. Si l’utilisateur y consent, votre application a accès aux ressources et aux API qu’elle a demandées.If the user consents, your app is given access to the resources and APIs that it has requested. Pour les applications auxquelles les utilisateurs n’ont pas à se connecter, les autorisations peuvent être préalablement consenties par un administrateur lors de l’installation de l’application.For apps that don't take a signed-in user, permissions can be pre-consented to by an administrator when the app is installed.

Microsoft Graph comprend deux types d’autorisations :Microsoft Graph has two types of permissions:

  • Les autorisations déléguées sont utilisées par les applications qui ont un utilisateur connecté.Delegated permissions are used by apps that have a signed-in user present. Pour ces applications, l’utilisateur ou un administrateur consent aux autorisations demandées par l’application, et l’application peut agir en tant qu’utilisateur connecté lors des appels à Microsoft Graph.For these apps, either the user or an administrator consents to the permissions that the app requests and the app can act as the signed-in user when making calls to Microsoft Graph. Certaines autorisations déléguées peuvent être consenties par des utilisateurs qui n’ont pas de privilèges d’administrateur, mais certaines autorisations avec privilèges plus élevés nécessitent le consentement de l’administrateur.Some delegated permissions can be consented by non-administrative users, but some higher-privileged permissions require administrator consent.

  • Les autorisations d’application sont utilisées par les applications qui s’exécutent sans utilisateur connecté ; par exemple, les applications qui s’exécutent en tant que démons ou services d’arrière-plan.Application permissions are used by apps that run without a signed-in user present; for example, apps that run as background services or daemons. Les autorisations d’application peuvent uniquement être accordées par un administrateur.Application permissions can only be consented by an administrator.

Les autorisations effectives sont les autorisations que votre application aura lorsqu’elle effectuera des requêtes à Microsoft Graph. Il est important de comprendre la différence entre une autorisation déléguée et une autorisation de l’application dont bénéficie votre application, ainsi que ses autorisations effectives lorsqu’elle appelle Microsoft Graph.Effective permissions are the permissions that your app will have when making requests to Microsoft Graph. It is important to understand the difference between the delegated and application permissions that your app is granted and its effective permissions when making calls to Microsoft Graph.

  • Pour les autorisations déléguées, les autorisations effectives de votre application correspondront à la combinaison des autorisations déléguées accordées à l’application (par consentement) et des privilèges de l’utilisateur connecté.For delegated permissions, the effective permissions of your app will be the intersection of the delegated permissions the app has been granted (via consent) and the privileges of the currently signed-in user. Votre application ne peut jamais avoir plus de privilèges que l’utilisateur connecté.Your app can never have more privileges than the signed-in user. Au sein des organisations, les privilèges de l’utilisateur connecté peuvent être déterminés par une stratégie ou par son appartenance à un ou plusieurs rôles d’administrateur.Within organizations, the privileges of the signed-in user can be determined by policy or by membership in one or more administrator roles. Pour en savoir plus sur les rôles d’administrateur, consultez la rubrique Attribution de rôles d’administrateur dans Azure Active Directory.For more information about administrator roles, see Assigning administrator roles in Azure Active Directory.

    Par exemple, supposons que votre application ait reçu l’autorisation déléguée User.ReadWrite.All.For example, assume your app has been granted the User.ReadWrite.All delegated permission. Cette autorisation accorde nominalement à votre application l’autorisation de lire et de mettre à jour le profil de chacun des utilisateurs d’une organisation.This permission nominally grants your app permission to read and update the profile of every user in an organization. Si l’utilisateur connecté est un administrateur global, votre application sera en mesure de mettre à jour le profil de chaque utilisateur de l’organisation.If the signed-in user is a global administrator, your app will be able to update the profile of every user in the organization. Toutefois, si l’utilisateur connecté n’a pas un rôle d’administrateur, votre application sera en mesure de mettre à jour uniquement le profil de l’utilisateur connecté.However, if the signed-in user is not in an administrator role, your app will be able to update only the profile of the signed-in user. Elle ne pourra pas mettre à jour les profils d’autres utilisateurs de l’organisation, car l’utilisateur pour lequel elle est autorisée à agir ne dispose pas de ces privilèges.It will not be able to update the profiles of other users in the organization because the user that it has permission to act on behalf of does not have those privileges.
  • Pour les autorisations d’application, les autorisations effectives de votre application correspondront au niveau complet des privilèges impliqués par l’autorisation.For application permissions, the effective permissions of your app will be the full level of privileges implied by the permission. Par exemple, une application qui possède l’autorisation d’application User.ReadWrite.All peut mettre à jour le profil de chaque utilisateur de l’organisation.For example, an app that has the User.ReadWrite.All application permission can update the profile of every user in the organization.

Remarque Par défaut, les applications auxquelles des autorisations ont été accordées pour les jeux de données suivants peuvent accéder à toutes les boîtes aux lettres de l’organisation :Note By default, apps that have been granted application permissions to the following data sets can access all the mailboxes in the organization:

Les administrateurs peuvent configurer la stratégie d’accès des applications pour limiter l’accès des applications à des boîtes aux lettres spécifiques.Administrators can configure application access policy to limit app access to specific mailboxes.

Pour obtenir la liste complète des autorisations déléguées et des autorisations d’application de Microsoft Graph, ainsi que des autorisations nécessitant le consentement de l’administrateur, consultez la rubrique Référence des autorisations.For a complete list of delegated and application permissions for Microsoft Graph, as well as which permissions require administrator consent, see the Permissions reference.

Obtenir un jeton d’accèsGetting an access token

Comme la plupart des développeurs, vous utiliserez probablement des bibliothèques d’authentification pour gérer les interactions de jetons avec la Plateforme d’identités Microsoft.Like most developers, you will probably use authentication libraries to manage your token interactions with the Microsoft identity platform. Les bibliothèques d’authentification résument de nombreuses informations relatives au protocole, comme la validation, la gestion des cookies, la mise en cache des jetons et le maintien de connexions sécurisées, et vous permettent de vous concentrer sur le développement de votre application.Authentication libraries abstract many protocol details, like validation, cookie handling, token caching, and maintaining secure connections, away from the developer and let you focus your development on your app. Microsoft publie des bibliothèques clientes open source et des intergiciels serveur.Microsoft publishes open source client libraries and server middleware.

Pour le point de terminaison de la Plateforme d’identités Microsoft :For the Microsoft identity platform endpoint:

  • Les bibliothèques clientes MSAL sont disponibles pour .NET, JavaScript, Android et Objective-c. Toutes les plates-formes sont présentées en mode d’aperçu pris en charge par la production et, dans le cas de modifications de dernière minute, Microsoft garantit un chemin d’accès pour la mise à niveau.Microsoft Authentication Library (MSAL) client libraries are available for .NET, JavaScript, Android, and Objective-c. All platforms are in production-supported preview, and, in the event breaking changes are introduced, Microsoft guarantees a path to upgrade.
  • Les intergiciels serveur de Microsoft sont disponibles pour .NET Core et ASP.NET (OWIN OpenID Connect et OAuth), ainsi que pour Node.js (Plateforme d’identités Microsoft, Passport.js).Server middleware from Microsoft is available for .NET core and ASP.NET (OWIN OpenID Connect and OAuth) and for Node.js (Microsoft the Microsoft identity platform Passport.js).
  • La Plateforme d’identités Microsoft est compatible avec de nombreuses bibliothèques d’authentification tierces.The Microsoft identity platform is compatible with many third-party authentication libraries.

Pour obtenir la liste complète des bibliothèques clientes Microsoft, des intergiciels serveur Microsoft et des bibliothèques tierces compatibles, consultez Bibliothèques d’authentification de la Plateforme d’identités Microsoft.For a complete list of Microsoft client libraries, Microsoft server middleware, and compatible third-party libraries, see Microsoft identity platform authentication libraries.

Vous n’avez pas besoin d’utiliser une bibliothèque d’authentification pour obtenir un jeton d’accès.You do not need to use an authentication library to get an access token. Pour en savoir plus sur l’utilisation directe de points de terminaison de la Plateforme d’identités Microsoft sans l’aide d’une bibliothèque d’authentification, consultez Authentification sur la Plateforme d’identités Microsoft.To learn about directly using the Microsoft identity platform endpoints without the help of an authentication library, see Microsoft identity platform authentication

Étapes suivantesNext steps

Si vous êtes prêt à vous immerger dans le code, vous pouvez utiliser les ressources suivantes pour vous aider à implémenter l’authentification et l’autorisation avec la Plateforme d’identités Microsoft dans votre application.If you're ready to jump into code, you can use the following resources to help you implement authentication and authorization with the Microsoft identity platform in your app.

Exemples et formation Microsoft GraphMicrosoft Graph training and samples

Pour vous permettre de démarrer facilement, nous avons créé une série de modules de formation et d’autres ressources qui expliquent comment s’authentifier et utiliser l’API sur différentes plateformes.To help you get started quickly, we've created a series of training modules and other resources that show you how to authenticate and use the API on a variety of platforms.

Exemples et documentation relatifs à la Plateforme d’identités MicrosoftMicrosoft identity platform samples and documentation

La documentation relative à la Plateforme d’identités Microsoft contient des articles et des exemples qui se concentrent spécifiquement sur l’authentification et l’autorisation avec la Plateforme d’identités Microsoft.The Microsoft identity platform documentation contains articles and samples that specifically focus on authentication and authorization with the Microsoft identity platform.

Voir aussiSee also