Récupérer des événements à votre vitesse à l’aide de Microsoft Graph
Cet article décrit un modèle d’intégration Microsoft Graph courant pour un scénario métier qui nécessite une analyse de la sécurité du contenu de collaboration pour empêcher le partage, le transfert ou l’utilisation de données sensibles non sécurisés ou inappropriés, comme dans les scénarios de protection contre la perte de données (DLP).
Ce scénario métier est un cas d’usage non interactif qui nécessite un flux de données de modifications déclenchées par les utilisateurs qui interagissent avec différents systèmes de messagerie. Il ne repose pas sur le comportement fonctionnel de Microsoft 365 et a les exigences d’architecture suivantes :
- Type d’intégration de données.
- Flux de données sortants des limites Microsoft 365 vers l’application.
- Volume de données élevé pour les moyennes et grandes entreprises.
- Latence des données en quasi-temps réel pour réduire la perte de données.
La meilleure option d’intégration pour ce scénario consiste à utiliser le modèle d’intégration Pub/Sub activé par les notifications de modification Microsoft Graph, qui peut fournir des notifications d’événements ainsi que le contenu d’un message partagé, remis à Azure Event Hubs. Ce modèle permet à l’application de recevoir des notifications de modification de façon asynchrone et ne couple pas étroitement Microsoft Graph aux applications réceptrices. Ce type d’interaction d’application est souvent appelé mode d’extraction.
Le diagramme suivant illustre l’architecture de cette solution.
Composants de la solution
L’architecture de la solution comprend les composants suivants :
- Azure Event Hubs, qui vous permet d’ingérer un volume élevé de petits messages, inférieurs à 1 Mo, en une seconde avec une faible latence, et de les stocker pour un traitement consécutif.
- Azure App Service, qui vous permet de créer et d’héberger des applications web, des back-ends mobiles et des API RESTful dans votre langage de programmation préféré, sans gérer l’infrastructure. Il offre une mise à l’échelle automatique et une haute disponibilité, prend en charge Windows et Linux, et permet des déploiements automatisés à partir de GitHub, d’Azure DevOps ou de n’importe quel dépôt Git.
- Microsoft Entra ID, qui est nécessaire pour gérer l’authentification pour les API Microsoft Graph et prend en charge les autorisations déléguées et d’application pour activer le flux OAuth.
- Application de fonction, qui est un composant serverless qui vous permet d’effectuer un scale-out pour les rafales de nouvelles notifications et a une logique métier pour traiter les notifications et les envoyer à un service de destination.
- Les services de notification Microsoft Graph, qui gèrent les abonnements aux notifications et fournissent des notifications de modification aux clients.
Considérations
Les considérations suivantes prennent en charge l’utilisation de ce modèle d’intégration :
Disponibilité : Azure Event Hubs fournir une haute disponibilité dans plusieurs zones de disponibilité.
Latence : Azure Event Hubs pouvez traiter des millions d’événements par seconde avec une faible latence.
Scalabilité : Azure Event Hubs fournir un stockage et une rétention des événements jusqu’à 90 jours en fonction du niveau de service, ce qui permet à l’application personnalisée de consommer et de traiter les événements à son propre rythme.
Complexité de la solution : cette solution nécessite un code personnalisé pour gérer les abonnements et des clés de chiffrement pour traiter les données. Étant donné que cette solution ne nécessite pas d’élasticité et la capacité de réagir à un volume inattendu d’événements, elle est moins complexe que l’intégration avec des webhooks en mode Push. Cette solution présente une complexité moyenne.