Que lit et qu'écrit un logiciel par Microsoft Graph ?
Microsoft Graph donne accès, par une seule adresse (https://graph.microsoft.com), aux données de Microsoft 365 : boîtes aux lettres, agendas, contacts, fichiers, sites SharePoint, utilisateurs et groupes, conversations Teams. Les ressources les plus utiles à un logiciel métier :
| Ressource Graph | Contenu | Exemple d'usage |
|---|---|---|
| message | E-mails d'une boîte aux lettres | Lire les commandes reçues sur une boîte partagée |
| event | Événements d'agenda Outlook | Poser une intervention dans l'agenda d'un technicien |
| contact | Contacts Outlook | Aligner les contacts commerciaux sur le CRM |
| driveItem, list | Fichiers OneDrive et SharePoint, listes SharePoint | Ranger un rapport PDF dans le dossier du client |
| user, group | Comptes et groupes de l'annuaire | Ouvrir ou fermer un accès au logiciel métier |
Pour limiter les allers-retours, Graph accepte aussi des lots JSON ; selon la page de Microsoft sur la limitation, chaque requête d'un lot est évaluée séparément et peut échouer en 429 alors que le lot répond 200, et le logiciel la rejoue ensuite. Les conversations Teams ont leur propre page : connecter Microsoft Teams.
Permissions déléguées ou permissions d'application ?
Tout passe par une inscription d'application dans Microsoft Entra ID et par OAuth 2.0. Le choix structurant est le mode d'accès :
- Permissions déléguées : l'application agit au nom d'un utilisateur connecté et ne voit que ce qu'il voit, comme un logiciel où chaque commercial relie son propre agenda.
- Permissions d'application : le logiciel agit seul, par le flux « client credentials », par exemple un service qui traite la nuit une boîte partagée. Ces permissions exigent toujours le consentement d'un administrateur, à redonner après toute modification.
Le jeton obtenu dure environ une heure (3 599 secondes dans l'exemple de la documentation) ; Microsoft recommande une bibliothèque comme MSAL pour obtenir les jetons et les garder en cache, et l'application peut s'authentifier par un secret, par un certificat ou par une identité fédérée.
Le point délicat est l'étendue des droits : une permission d'application Mail.Read lit toutes les boîtes de l'organisation, et Mail.Send écrit au nom de n'importe quel utilisateur. Exchange Online propose RBAC for Applications, qui remplace les anciennes stratégies d'accès : le rôle est attribué à l'application sur un périmètre (groupe de boîtes, unité administrative), puis le consentement global est retiré dans Entra ID, sans quoi le périmètre ne sert à rien puisque les deux droits s'additionnent. Un changement met de 30 minutes à 2 heures à s'appliquer.
Être prévenu d'un changement sans interroger en boucle
Microsoft Graph offre deux mécanismes complémentaires : les notifications de changement préviennent votre logiciel qu'un e-mail, un événement ou un fichier a été créé, modifié ou supprimé ; la requête delta lui permet de récupérer tout ce qui a changé depuis son dernier passage.
| Abonnement | Durée maximale | Latence annoncée |
|---|---|---|
| E-mails, événements, contacts Outlook | 10 080 minutes (moins de 7 jours), 1 440 avec données incluses | Moins d'une minute en moyenne, 3 minutes au plus pour les e-mails et contacts (non précisée pour les événements) |
| Fichiers OneDrive, listes SharePoint | 42 300 minutes (moins de 30 jours) | Moins d'une minute en moyenne, jusqu'à 6 heures |
| Utilisateurs et groupes | 41 760 minutes (moins de 29 jours) | Non précisée |
Les règles de livraison sont strictes. À la création, l'adresse doit renvoyer le jeton de validation en texte brut dans les 10 secondes ; chaque notification porte le clientState choisi à la création, que le logiciel contrôle ; et un code 2xx doit revenir en 3 secondes, faute de quoi Microsoft relance pendant 4 heures au plus. Si plus de 15 % des réponses dépassent 10 secondes sur 10 minutes, les notifications sont abandonnées pendant 10 minutes, parfois sans retour possible. Le point de réception accuse donc réception (202) et traite plus tard, ou les notifications passent par Azure Event Hubs ou Event Grid.
La requête delta sert de filet : la notification déclenche un appel delta, qui renvoie les changements réels. Un même changement peut revenir deux fois, et une réponse 410 Gone impose une resynchronisation complète.
Combien d'appels Microsoft Graph accepte-t-il ?
Microsoft Graph plafonne chaque application à 130 000 requêtes par tranche de 10 secondes, tous locataires confondus, et chaque service (Outlook, SharePoint, Teams…) ajoute ses propres limites ; la première atteinte déclenche la limitation. Le service répond alors 429, en général avec un en-tête Retry-After à respecter avant de réessayer ; sans lui, Microsoft recommande un délai exponentiel, et ses SDK réessaient déjà d'eux-mêmes les requêtes limitées hors lot. Un en-tête x-ms-throttle-limit-percentage apparaît quand l'application dépasse 80 % de sa limite.
Ces plafonds se rencontrent lors d'une reprise d'historique (des années d'e-mails ou de fichiers) ou quand un logiciel interroge les boîtes toutes les minutes. Microsoft conseille d'éviter ce sondage permanent au profit des notifications et de la requête delta, et oriente les extractions massives vers Microsoft Graph Data Connect.
Cinq flux entre Microsoft 365 et un logiciel métier
- La boîte commandes@ alimente la gestion commerciale. Une notification signale chaque e-mail reçu sur la boîte partagée ; le connecteur lit le message et ses pièces jointes, crée une commande à valider ou la confie à une extraction automatique (voir automatiser la saisie avec l'IA). Grâce à RBAC for Applications, l'application n'a de droits que sur cette boîte.
- Le planning pousse les interventions dans Outlook. Chaque intervention planifiée devient un événement dans l'agenda du technicien, avec l'adresse et le numéro de dossier ; un déplacement dans le planning met l'événement à jour. Voir notre page sur le planning des équipes de techniciens.
- Les documents rejoignent SharePoint. Le rapport d'intervention signé, généré en PDF, est déposé dans le dossier SharePoint du client, sans téléchargement ni glisser-déposer manuel.
- L'annuaire gère les accès. Un salarié quitte l'entreprise et son compte Microsoft 365 est désactivé : la requête delta sur les utilisateurs le signale, et le logiciel métier ferme son accès le jour même.
- Le logiciel écrit depuis votre domaine. Devis et relances partent par Graph depuis une boîte de l'entreprise, avec une permission Mail.Send limitée à cette seule boîte.
Les précautions propres à Microsoft 365
- Le consentement administrateur se prévoit dans le planning du projet : sans lui, aucune permission d'application ne fonctionne, et toute nouvelle permission demande un nouvel accord.
- Les abonnements expirent : un abonnement non renouvelé s'arrête sans bruit. Les notifications de cycle de vie préviennent le logiciel avant la perte, et une tâche planifiée renouvelle chaque abonnement.
- Les secrets et certificats se renouvellent : leur échéance entre dans le calendrier de maintenance pour éviter une coupure un lundi matin.
- Les données restent personnelles : un connecteur qui lit des boîtes aux lettres traite des données de salariés et de clients. Registre, durées de conservation et minimum de droits s'appliquent, comme le rappelle notre guide RGPD et logiciel métier.
- Le développement se fait à part : sur un locataire de test ou des boîtes dédiées, jamais sur les boîtes des dirigeants.
Power Automate, option du marché ou intégration développée ?
Microsoft propose aussi Power Automate, l'outil sur lequel reposent les workflows de Teams et qui relie des événements à d'autres services. Le choix dépend du flux :
| Situation | Réponse raisonnable |
|---|---|
| Copier une pièce jointe dans SharePoint, prévenir une équipe | Power Automate |
| Logiciel du marché doté d'une synchronisation Outlook | L'activer |
| Logiciel métier spécifique, règles de rapprochement, volumes | Intégration développée sur Graph |
| Droits limités à quelques boîtes et journal complet exigés | Intégration développée |
Selon la documentation Teams, un workflow est rattaché à ses propriétaires, pas à l'équipe ni au canal, et il peut devenir orphelin s'il perd son propriétaire sans qu'un copropriétaire ait été désigné. C'est sans gravité pour un flux de confort, beaucoup moins pour un flux qui porte des commandes. Voir aussi nos alternatives à Power Apps.
Ce que YMHB Web livre sur un projet Microsoft 365
Nous cadrons les flux, les boîtes et dossiers concernés et les droits minimaux, puis nous chiffrons. L'inscription d'application est créée dans votre locataire, sous le contrôle de votre administrateur.
- l'application Entra ID, ses secrets ou certificats, et la liste justifiée de chaque permission ;
- le périmètre RBAC for Applications documenté, avec le test qui prouve qu'il fonctionne ;
- le code du connecteur et la gestion des abonnements (création, renouvellement, cycle de vie), déposés chez vous ;
- un journal des échanges et une alerte quand un abonnement tombe ou qu'un flux échoue.
Pour l'architecture d'ensemble, voir connecter ses logiciels par API ; si votre ERP est Business Central, voir aussi l'intégration Microsoft Dynamics 365.
Questions fréquentes
Peut-on limiter une application Microsoft Graph à une seule boîte aux lettres ?
Oui. Exchange Online propose RBAC for Applications, qui remplace les anciennes stratégies d'accès des applications : on attribue à l'application un rôle comme Application Mail.Read sur un périmètre précis, par exemple un groupe de boîtes ou une unité administrative. Il faut ensuite retirer la permission accordée à toute l'organisation dans Entra ID, car les deux droits s'additionnent. Les changements prennent de 30 minutes à 2 heures.
Combien de temps dure un abonnement aux notifications Microsoft Graph ?
Cela dépend de la ressource. Selon Microsoft, un abonnement aux e-mails, événements ou contacts Outlook dure au plus 10 080 minutes, soit moins de 7 jours, et 1 440 minutes s'il inclut les données. Un abonnement aux fichiers OneDrive ou aux listes SharePoint peut durer 42 300 minutes. Le logiciel doit renouveler chaque abonnement avant son expiration, sinon les notifications s'arrêtent.
Faut-il un administrateur Microsoft 365 pour connecter un logiciel ?
Pour un logiciel qui agit sans utilisateur connecté, oui : les permissions d'application de Microsoft Graph exigent toujours le consentement d'un administrateur, à redonner à chaque modification. Pour un logiciel où chaque utilisateur connecte son propre compte, les permissions sont déléguées : selon la documentation de Microsoft, certaines d'entre elles exigent elles aussi l'approbation d'un administrateur, ce qui se vérifie permission par permission au cadrage.
Que se passe-t-il si Microsoft Graph limite les appels d'un logiciel ?
Microsoft Graph répond par une erreur 429, en général avec un en-tête Retry-After qui indique le nombre de secondes à attendre avant de réessayer. Sans cet en-tête, Microsoft recommande un délai exponentiel. Les nouvelles tentatives immédiates comptent dans les limites et aggravent la situation. Pour éviter la limitation, Microsoft conseille les notifications de changement et la requête delta plutôt que l'interrogation répétée.
Notifications de changement ou requête delta : laquelle choisir ?
Les deux, en général. Les notifications de changement de Microsoft Graph préviennent le logiciel en temps réel, mais elles peuvent être perdues si le point de réception est lent ou indisponible. La requête delta récupère tous les changements depuis le dernier passage. Microsoft suggère de combiner les deux : la notification déclenche un appel delta, qui sert aussi de filet de rattrapage.
À lire aussi
Sources
- Microsoft Learn, Authentication and authorization basics (permissions déléguées et d'application, MSAL)
- Microsoft Learn, Get access without a user (client credentials)
- Microsoft Learn, Limiting application permissions to specific Exchange Online mailboxes (RBAC for Applications)
- Microsoft Learn, Change notifications overview
- Microsoft Learn, Receive change notifications through webhooks
- Microsoft Learn, Use delta query to track changes
- Microsoft Learn, Microsoft Graph throttling guidance
- Microsoft Learn, Microsoft Graph service-specific throttling limits
- Microsoft Learn, Create an Incoming Webhook (workflows et propriétaires)
