Vue d’ensemble de Microsoft Graph et des applications web ASP.NET MVC
Dans cette section, vous allez découvrir comment Microsoft Graph s’adapte à la plateforme Microsoft 365 plus étendue. Vous découvrirez ensuite comment utiliser Microsoft Graph dans une application ASP.NET MVC pour afficher des événements du calendrier de l’utilisateur actuellement connecté.
Plateforme Microsoft 365
La vision du développeur Microsoft 365 se concentre sur l'expérience de l'utilisateur et ses données. En tant que développeur, vous pouvez intégrer votre application dans l'expérience de l'utilisateur avec plus de 1,2 milliard d'utilisateurs d'Office dans le monde entier. Vous pouvez ainsi disposer d’une vitrine pour votre application et permettre aux utilisateurs de se connecter à leurs données afin d’obtenir des renseignements sur votre application.
Il existe actuellement plus de 850 millions d’événements créés tous les mois et un total de plus de 400 pétaoctets de données stockées dans le service qui peuvent augmenter la valeur pour vos utilisateurs.
Microsoft Graph est la passerelle d’accès à vos données dans le cloud Microsoft.
Microsoft Graph : passerelle d’accès à toutes vos données dans le cloud Microsoft.
Le cloud Microsoft inclut bon nombre de services et types de données éventuellement utiles d’Office 365, et l’ensemble est considéré comme faisant partie de la plateforme Microsoft 365.
Les développeurs peuvent intégrer le courrier électronique, le calendrier, les contacts et les tâches de l’utilisateur connecté dans des applications personnalisées. Nous pouvons utiliser du contenu dans des sites SharePoint et des fichiers de listes dans OneDrive, des canaux et du contenu dans Microsoft Teams, et des utilisateurs dans l’ID Microsoft Entra.
Les développeurs peuvent tirer parti de nombreux services dans leurs applications personnalisées. Bon nombre de ces services ont leurs propres API avec lesquelles les développeurs peuvent interagir.
Toutefois, il peut être difficile d’accéder à chacun de ces services individuels à l’aide de leur point de terminaison individuel. Chaque API peut avoir son propre modèle d’autorisation, avec des configurations de contrôle d’accès individuelles. Des points de terminaison différents pour chaque service signifient que nos applications personnalisées devront obtenir un jeton d’accès à partir de l’ID Microsoft Entra pour chacune d’elles.
Microsoft Graph simplifie l’accès aux données Microsoft 365
Microsoft Graph offre l’avantage de service de point de terminaison proxy à tous les autres services. Microsoft Graph englobe des éléments tels qu’Office 365 et Windows 10 Enterprise Mobility and Security (EMS), et rassemble tous ces services sous un point de terminaison unifié : graph.microsoft.com.
L’avantage de Microsoft Graph est qu’il permet aux développeurs de n’avoir qu’un seul point de terminaison, une ressource, ce qui signifie que vous n’aurez besoin que d’un seul jeton d’accès pour authentifier les différents services. Chaque service dispose toujours de ses propres autorisations afin que tout le contenu reste sécurisé de manière individuelle. Un point de terminaison unique facilite le processus de création d’applications pour les développeurs.
Microsoft Graph permet également de parcourir facilement les entités et les relations entre elles. Bien qu’il existe de nombreux services Microsoft 365, tels que OneDrive pour les fichiers, ou Outlook pour les contacts et les calendriers, ces différentes entités sont liées les unes aux autres. Ces relations sont dans Microsoft Graph, ce qui facilite la navigation d’une entité vers une autre, même si cela suppose le passage par plusieurs points de terminaison sous-jacents.
Flux d’authentification unique
Microsoft Graph simplifie l’acquisition des jetons, car avec tous ces différents services dans Microsoft 365, nous devrions obtenir un jeton d’accès distinct pour chacun d’eux.
Microsoft Graph utilise un proxy pour les différents services entre eux de sorte que nous n’avons pas besoin d’obtenir des jetons individuels pour chaque service. Microsoft Graph, via un point de terminaison, effectuera des appels proxy vers chaque point de terminaison du service.
Ceci élimine la nécessité d’utiliser un service de découverte traditionnel. Avant Microsoft Graph, les développeurs devaient utiliser un service de découverte pour demander les points de terminaison différents avec Microsoft 365 pour les points de terminaison propres à l’utilisateur pour chaque service, tels que OneDrive ou Outlook.
Il est important de garder à l’esprit qu’étant donné qu’il s’agit d’un proxy, il est possible que les nouvelles fonctionnalités apparaissent dans ces points de terminaison en aval avant d’apparaître dans Microsoft Graph. En effet, Microsoft Graph est un proxy qui ne peut pas exposer de fonctionnalités qui n’existent pas en aval dans l’un des services proxy.
Authentification et infrastructure de consentement
Office 365 possède un flux d’authentification unique que Microsoft Graph utilise également. Les utilisateurs se connectent à l’aide d’une technologie appelée OpenID Connect, qui est une norme ouverte. OpenID Connect est un wrapper vers le protocole d’authentification OAuth 2.0 qui inclut des détails sur la personne qui s’est connectée.
L’ID Microsoft Entra est utilisé pour toute l’authentification. Microsoft Graph utilise le même modèle d’authentification qu’Azure et Office 365, qui repose sur le modèle d’authentification de l’ID Microsoft Entra. Ces deux services approuvent l’ID Microsoft Entra et, en ayant cette confiance partagée, nous pouvons tirer parti de l’authentification pour tirer parti de ces deux services différents avec le même flux d’authentification.
Ce flux d'authentification prend également en charge l'authentification multifacteur, également appelée MFA, et les connexions d'utilisateurs fédérés. Il prend en charge tous les types d'applications provenant d'appareils, y compris les appareils mobiles, les sites web, les applications à page unique qui vivent à 100 % dans le client ou en tant qu'application dépourvue d’implication des utilisateurs, également appelées application démon ou service.
L’un des concepts avec l’ID Microsoft Entra est l’infrastructure de consentement commune. Pour mieux comprendre le consentement, réfléchissez aux autorisations dans le concept de triangle.
Un point du triangle est l’autorisation, un autre point est l’utilisateur ou l’application, et le dernier point est la ressource à laquelle vous essayez de parler. L’utilisateur doit avoir l’autorisation d’accès à la ressource pour y parler.
La première fois que l’utilisateur se connecte à l’ID Microsoft Entra pour obtenir un jeton d’accès pour s’authentifier auprès de Microsoft Graph, Microsoft Entra vérifie d’abord si cet utilisateur a accordé à cette application l’accès à Microsoft Graph. Il vérifie spécifiquement si l’accès à ces autorisations a été accordé à l’application.
Ainsi, si l’utilisateur n’est pas passé par ce processus, l’infrastructure de consentement commune prend place et une fois connecté, la boîte de dialogue ci-dessus s’affiche dans l’image précédente.
Lorsque l’utilisateur n’a pas accordé l’autorisation au point de terminaison, à l’application, l’infrastructure de consentement l’invite à le faire. Ce processus est appelé consentement délégué. Lorsque l’utilisateur approuve l’invite de la boîte de dialogue, il accorde à l’application spécifique une autorisation spécifique pour agir au nom de l’utilisateur.
Options d’authentification
Microsoft Graph prend en charge deux options d’authentification. L’une des options est Microsoft Entra uniquement, ou un compte professionnel ou scolaire. L’autre option est l’authentification convergée, qui est l’ID Microsoft Entra et ou les comptes Microsoft. Dans ce cas, vous pouvez utiliser le même code dans Microsoft Graph (les mêmes points de terminaison) que les mêmes kits de développement de documents pour récupérer mes fichiers dans OneDrive Entreprise ou OneDrive Entreprise. Il en est de même pour les calendriers, les contacts et les courriers électroniques dans outlook.com ou Office 365.
Il est intéressant de noter que les données que vous récupérez dépendent toutes de la connexion de l'utilisateur qui s'est connecté. Par conséquent, vous n’avez pas besoin d’écrire du code spécial ou d’utiliser des API ou des points de terminaison différents pour obtenir des données pour les comptes consommateurs ou les comptes professionnels.
Comptes Microsoft & ID Microsoft Entra
Comme indiqué précédemment, Microsoft Graph prend en charge les comptes Microsoft et les comptes Microsoft Entra, également appelés comptes professionnels et scolaires. Aucune information sur les API ou SDK de Microsoft Graph n’est propre à la connexion. Le code est le même et la connexion détermine le service auquel Microsoft Graph pourra accéder. Si l’utilisateur s’est connecté à l’aide d’un compte Microsoft, le point de terminaison des fichiers est mappé avec le consommateur OneDrive, tandis que les connexions professionnelles et scolaires sont mappées à OneDrive Entreprise. Il s’agit simplement d’un exemple.
Pour déterminer le type de compte pris en charge par votre application, ou si elle prend en charge les deux, vous devez définir un paramètre spécifique dans l’application Microsoft Entra associée inscrite dans le Centre d’administration Microsoft Entra.
Microsoft Graph et des applications web ASP.NET MVC
Les développeurs peuvent utiliser Microsoft Graph dans de nombreux types d'applications différentes. Dans ce module, vous ajouterez la possibilité d'appeler Microsoft Graph pour afficher les événements du calendrier de l'utilisateur actuellement connecté dans une application web ASP.NET MVC.
La première étape consiste à créer une application web ASP.NET MVC à l’aide de l’Assistant de création de projets Visual Studio. Ensuite, ajoutez et configurez la bibliothèque d’authentification Microsoft (MSAL) pour .NET et le intergiciel OWIN. Cela permet à l’application web de permettre aux utilisateurs de se connecter et d’obtenir des jetons d’accès à partir de l’ID Microsoft Entra à utiliser lors de l’envoi de demandes à Microsoft Graph. Ces deux bibliothèques nécessitent que vous installiez quelques bibliothèques dans votre projet. Les bibliothèques sont disponibles sous forme de packages NuGet.
Ensuite, assurez-vous que votre demande utilise le protocole SSL. Lorsque vous inscrivez une application avec l’ID Microsoft Entra, vous devez spécifier l’URL de redirection vers laquelle les utilisateurs seront envoyés après une connexion réussie. Cette URL doit être configurée pour utiliser HTTPS pour fonctionner avec une application Microsoft Entra.
Résumé
Dans cette section, vous avez découvert comment Microsoft Graph s’adapte à la plateforme Microsoft 365 plus étendue. Vous découvrirez ensuite comment utiliser Microsoft Graph dans une application ASP.NET MVC pour afficher des événements du calendrier de l’utilisateur actuellement connecté.