Qu’est-ce que Microsoft Graph ? Comment commencer ? OĂč se former ?
Microsoft Graph est une passerelle permettant l’accĂšs, l’Ă©change et la manipulation de donnĂ©es sur l’ensemble des services de l’Ă©cosystĂšme Micrsoft 365. Disposant d’une interface de communication unifiĂ©e, Microsoft Graph rend accessible les donnĂ©es disponibles dans Office 365, Windows 10 et Enterprise Mobility + Security : emails, discussions, calendriers, groupes, documents, alertes de sĂ©curitĂ©, #Planner, #OneNote, #Teams, #Yammer, mais pas seulement ….
Il est Ă©galement possible de rĂ©aliser des scĂ©narios plus avancĂ©s avec l’utilisation des services Azures (Azure AI, Azure Bot Service, Azure Automation etc…). Ceci permet d’augmenter le champs des possibles et de rendre plus productif certains processus en passant par de l’automatisation pour optimiser la productivitĂ©, tout en permettant d’accĂ©der Ă des donnĂ©es situĂ©es localement (OnPrem) Ă l’aide des connecteurs (DataGateway).
Microsoft Graph est composé de 3 briques :
- LâAPI Microsoft Graph
- Le composant Microsoft Graph data connect
- Les Connecteurs Microsoft Graph
đCe guide se concentrera sur le fonctionnement et l’utilisation de l’API Microsoft Graph.đ
Avant de se plonger sur l’API Microsoft Graph, son utilisation et les possibilitĂ©s d’applications mĂ©tiers, il est nĂ©cessaire de maĂźtriser les concepts liĂ©s au fonctionnement d’une API REST (ou RESTful).
Pour comprendre ce qu’est une API, dĂ©couvrir les diffĂ©rents types d’API je vous invite Ă lire la documentation Microsoft suivante : https://docs.microsoft.com/en-us/azure/architecture/best-practices/api-design#introduction-to-rest
Pour pouvoir explorer le potentiel de l’API Microsoft Graph il faut tout d’abord assimiler les thĂšmes suivants :
L’authentification et l’authorisation : elles reposent sur l’utilisation du protocole OAuth 2.0. : https://oauth.net/2/ . Pour ĂȘtre Ă mĂȘme de manipuler l’API Graph, il est nĂ©cessaire de savoir gĂ©nĂ©rer et utiliser des tokens (jeton d’accĂšs); et de disposer d’une application Azure Active Directory possĂ©dant des droits sur l’API Graph.
Note đĄUn Guide đ pas-Ă -pas est disponible ici pour crĂ©er votre application Azure ActiveDirectory dans votre environnement đ
Les diffĂ©rentes mĂ©thodes (Verb) HTTP : Ces mĂ©thodes permettent d’interagir de diffĂ©rentes maniĂšres avec les endpoints de l’API Microsoft Graph.
- GET: RĂ©cupĂ©rer les donnĂ©es d’une ressource spĂ©cifiĂ©e.
- POST: Soumettre les données à traiter à une ressource spécifiée.
- PUT: Mettre à jour une ressource spécifiée.
- DELETE: Supprimer une ressource spécifiée.
- PATCH: Mettre Ă jour une partie d’une ressource spĂ©cifiĂ©e.
La syntaxe d’une requĂȘte :
{version} : l’API Graph dispose de 2 versions : la /v1.0 qui est celle supportĂ©e et recommandĂ©e par Microsoft; et la /beta qui permet de tester en avance des endpoint et les nouveautĂ©s Ă venir. â ïžLa version /beta n’est pas supportĂ©e dans les environnements de production.
Note đĄ: Il est recommandĂ© de suivre l’Ă©volution de ces deux versions Ă l’aide du changelog.
{resource} : dĂ©termine le service sur lequel l’opĂ©ration doit ĂȘtre effectuĂ©e. Exemple de resource : les utilisateurs, les groupes, les sites SharePoint, les fichiers …
{id} : (en option en fonction de la requĂȘte) permet de spĂ©cifier un objet prĂ©cis dans le type de resource cible.
{property} : (en option en fonction de la requĂȘte) permet de spĂ©cifier une propriĂ©tĂ© sous-jacente Ă la ressource parent.
?{query-parameters} : (en option en fonction de la requĂȘte) permet de modifier la rĂ©ponse renvoyĂ©e par la requĂȘte pour y rĂ©aliser un filtre ou une mise en forme.
Les endpoints : Ce sont des Points de terminaison qui permettent de rĂ©cupĂ©rer ou de manipuler de la donnĂ©e. Voici un exemple de endpoints propres Ă l’API Microsoft Graph.
La liste complĂšte des endpoints est disponible dans la documentation “rĂ©fĂ©rence” de l’API Graph : https://docs.microsoft.com/en-us/graph/api/overview?view=graph-rest-1.0
Note đĄ : Dans le cas d’une utilisation sur un grand volume de donnĂ©es, les rĂ©ponses faites par l’API Microsoft Graph sont gĂ©nĂ©ralement paginĂ©es par lot de 500 valeurs. Exemple : GET /users/ dans une organisation avec 2000 comptes, retournera une rĂ©ponse avec 4 pages, 4 x500. A prendre en compte dans la conception de vos projets đ€.
Enfin, la manipulation du language JSON : https://en.wikipedia.org/wiki/
ou à défaut des notions en XML sont nécessaires.
AprĂšs avoir apprĂ©hender l’ensemble des concepts ci-dessus il est dĂ©sormais possible d’utiliser l’API Microsoft Graph. Pour cela, les 3 solutions les plus simples Ă disposition sont :
Graph explorer :
Microsoft nous a mis Ă disposition un outil pour jouer avec l’API Microsoft Graph. C’est le Graph Explorer. Ce dernier permet d’essayer des appels, dĂ©couvrir les rĂ©ponses et les valeurs, metas disponibles, celles qu’il est possible de manipuler ou non et ainsi comprendre l’utilisation de l’API.
PostMan :
PostMan est un outil permettant d’interroger des webservices et des APIs. Il est disponible sous Windows, Mac et Linux, dispose d’une interface graphique simple Ă prendre en main. Il permet entre autres de dĂ©finir des environnements, crĂ©er des collections de requĂȘtes, exporter et partager son travail. Il dispose Ă©galement d’une forte communautĂ© et d’une documentation riche en exemples.
PowerPlatform : Microsoft Flow
Microsoft Flow est l’une des briques de la PowerPlatform de Microsoft 365 et permet de crĂ©er des flux et processus de travails pour en automatiser les opĂ©rations. Cet outil est intĂ©grĂ© Ă l’Ă©co-systĂšme Office 365 et permet donc d’interagir de maniĂšre native avec les briques tel que SharePoint, Teams, OneDrive … et les donnĂ©es qui y sont prĂ©sentes. Pour en savoir plus : đ Guide đMicrosoft Flow â Comment bien dĂ©marrer ? đ
” LâAPI est au CitizenDeveloper (ou PowerUser) ce que lâUser Interface (UI) est Ă lâutilisateur “
En rĂ©sumĂ© l’API Microsoft Graph peut ĂȘtre comparĂ©e Ă une interface, simple d’accĂšs, et disponible pour toute personne dĂ©sirant construire une solution ayant besoin d’accĂ©der ou d’interagir avec l’Ă©cosystĂšme Office 365. De part sa facilitĂ© d’utilisation, sa standardisation et la richesse de sa documentation, les donnĂ©es prĂ©sentes dans les environnements Microsoft Office 365 sont consommables aussi bien par des dĂ©veloppeurs que des utilisateurs avancĂ©s (PowerUser; CitizenDeveloper).
Pourquoi Microsoft Graph ?
Microsoft Graph est une initiative de Microsoft qui vise Ă centraliser ses diffĂ©rentes API en un seul point. Le fait d’unifier les API va permettre de faciliter l’accessibilitĂ© des donnĂ©es que ce soit par des utilisateurs, des services informatiques ou des partenaires qui souhaitent concevoir des solutions gĂ©nĂ©ratrices de facturation.
Exemples de processus qu’il est possible de traiter via Microsoft Graph :
Traitement de l’ajout de nouveau collaborateur dans une organisation (on boarding). Il est Ă©galement possible via la PowerPlatform ou via des dĂ©veloppements spĂ©cifiques d’automatiser les processus de flux de travail.
L’intĂ©gration avec les donnĂ©es prĂ©sentes dans les fichiers Excel mais Ă©galement la manipulation des tableurs.
La conversion de fichiers.
N’Ă©tant pas un dĂ©veloppeur et ayant appris par la pratique comment utiliser l’API Microsoft Graph, voici mon retour d’expĂ©rience et mes recommandations pour se former de maniĂšre efficace :
- Commencer avec la sĂ©rie “30 days of Microsoft Graph” : Cette sĂ©rie est normalement Ă destination des dĂ©veloppeurs, mais il est facile de suivre et de reproduire les exemples qui y sont prĂ©sentĂ©s sans avoir de connaissances particuliĂšres en dĂ©veloppement.
Note đĄ: Pensez Ă dĂ©laisser Notepad++ au profit de VisualStudio Code et Ă prendre le temps de lire la documentation pour comprendre la structures des appels, les headers JSON associĂ©s etc… - Approfondir ses connaissances autour de l’authentification et des permission pour bien maitriser les concepts et comprendre les notions de consentement, de bear token, refresh token, de session, de droit d’application et droit dĂ©lĂ©guĂ©.
Note đĄ: PrivilĂ©giez ici l’utilisation de PostMan pour vos tests autour de la gĂ©nĂ©ration, manipulation, utilisation de token. Pensez Ă utiliser un profile Chrome/Edge dĂ©diĂ© pour ne pas avoir de chevauchement avec une Ă©ventuelle session MS/365 dans votre navigateur/profil principal - Tester des endpoints en utilisant de prĂ©fĂ©rence la version 1.0 de l’API Graph pour commencer. Puis, adapter les exemples mis Ă disposition par Jeremy Thake dans la collection disponible sur GitHub : MicrosoftGraph Postman Collection
- Finir par l’utilisation de Microsoft Flow et se construire un workflow de test disponible Ă tout moment pour dĂ©couvrir le fonctionnement de nouveaux appels. Les outils de la PowerPlatform et plus particuliĂšrement les briques logiques et algorithmiques de Flow permettent facilement d’imbriquer des appels et de stocker le(s) rĂ©sultat(s) directement dans votre environnement Office365 et/ou Azure (OneDrive, SharePoint, Teams, Blob…)
Dans le cas de R&D ou d’un projet qui va vous demander d’ĂȘtre au quotidien sur des tests d’appels je vous invite fortement Ă configurer PostMan pour ĂȘtre Ă mĂȘme de rĂ©cupĂ©rer un token automatiquement et rĂ©aliser vos tests. L’un des avantages majeur de PostMan est la possibilitĂ© d’enregistrer votre travail, le partager et le tester dans diffĂ©rents environnement depuis le mĂȘme client.
Afin de s’affranchir des limitations des droits que l’on peut vous accorder sur votre environnement de production, il est fortement conseiller de disposer de son propre environnement de test/dev/demo : Voir la procĂ©dure pas-Ă -pas ici pour crĂ©er votre propre environnement de DĂ©mo : đ Guide â Comment crĂ©er un environnement Microsoft Office 365 de DĂ©mo
Microsoft Graph dispose Ă©galement d’une communautĂ© trĂšs active aussi bien cĂŽtĂ© Microsoft que cĂŽtĂ© partenaires.
đPour aller plus loin :
Page d’accueil du site de Microsoft Graph : Microsoft Graph Developer
Microsoft Graph sur GitHub : Microsoft Graph sur GitHub
Documentation Microsoft Graph : https://docs.microsoft.com/en-us/graph/overview
Vidéo : Présentation Microsoft Graph API (Ignite 2018)
Blog Serie : 30 Days of Microsoft Graph : https://aka.ms/30DaysMSGraph
NoteđĄ: Le contenu est exact au moment de la publication. Toutefois, des mises Ă jour et des ajouts sont effectuĂ©s quotidiennement par Microsoft, ce qui pourrait en modifier l’exactitude ou la pertinence. Veuillez garder cela Ă l’esprit lorsque vous utilisez mes articles.
NâhĂ©sitez pas Ă partager votre retour dâexpĂ©rience dans les commentaires ou si vous avez des questions.
Actuellement en cours de rĂ©daction…đ
đRetours d’expĂ©riences et recommandations sur #Flow et la #PowerPlatform
đPrĂ©sentation d’un outil 3rd party pour la gestion de vos #WorkFlow dans un environnement avancĂ©
đMicrosoft Teams Governance : Flow, un outil au service de la gouvernance, l’automatisation et le reporting.