Freigeben über


Abrufen von Ereignissen mit Ihrer Geschwindigkeit mithilfe von Microsoft Graph

In diesem Artikel wird ein gängiges Microsoft Graph-Integrationsmuster für ein Geschäftsszenario beschrieben, das eine Sicherheitsanalyse von Inhalten zur Zusammenarbeit erfordert, um unsichere oder unangemessene Freigabe, Übertragung oder Verwendung vertraulicher Daten zu verhindern, z. B. in Dlp-Szenarien (Data Loss Prevention).

Dieses Geschäftsszenario ist ein nicht interaktiver Anwendungsfall, der einen Datenfeed von Änderungen erfordert, die von Benutzern ausgelöst werden, die mit verschiedenen Messagingsystemen interagieren. Es basiert nicht auf dem funktionalen Verhalten von Microsoft 365 und hat die folgenden Architekturanforderungen:

  • Ein Datenintegrationstyp.
  • Ein ausgehender Datenfluss von Microsoft 365-Grenzen zur App.
  • Ein hohes Datenvolumen für mittlere bis große Unternehmen.
  • Datenlatenz nahezu in Echtzeit, um Datenverluste zu minimieren.

Die beste Integrationsoption für dieses Szenario ist die Verwendung des Pub/Sub-Integrationsmusters, das durch Microsoft Graph-Änderungsbenachrichtigungen aktiviert wird, das Sowohl Ereignisbenachrichtigungen als auch den Inhalt einer freigegebenen Nachricht übermitteln kann, die an Azure Event Hubs übermittelt wird. Dieses Muster ermöglicht es der App, Änderungsbenachrichtigungen asynchron zu empfangen und Microsoft Graph nicht eng mit den Empfängeranwendungen zu verknüpfen. Diese Art von App-Interaktion wird häufig als Pullmodus bezeichnet.

Das folgende Diagramm zeigt die Architektur für diese Lösung.

Ein Diagramm, das zeigt, wie der Microsoft Graph-Benachrichtigungsdienst mit Microsoft Entra ID, Azure Event Hubs, App Services, Funktions-Apps und dem Zieldienst interagiert.

Lösungskomponenten

Die Lösungsarchitektur umfasst die folgenden Komponenten:

  • Azure Event Hubs, mit dem Sie eine große Menge kleiner Nachrichten mit weniger als 1 MB in einer Sekunde mit geringer Latenz erfassen und für die aufeinanderfolgende Verarbeitung speichern können.
  • Azure App Service, mit dem Sie Web-Apps, mobile Back-Ends und RESTful-APIs in Ihrer bevorzugten Programmiersprache erstellen und hosten können, ohne die Infrastruktur zu verwalten. Es bietet automatische Skalierung und Hochverfügbarkeit, unterstützt sowohl Windows als auch Linux und ermöglicht automatisierte Bereitstellungen von GitHub, Azure DevOps oder einem beliebigen Git-Repository.
  • Microsoft Entra ID, die zum Verwalten der Authentifizierung für Microsoft Graph-APIs erforderlich ist und delegierte Berechtigungen und Anwendungsberechtigungen unterstützt, um den OAuth-Fluss zu aktivieren.
  • Funktions-App, bei der es sich um eine serverlose Komponente handelt, mit der Sie für Bursts neuer Benachrichtigungen horizontal hochskalieren können, und verfügt über eine Geschäftslogik zum Verarbeiten und Senden von Benachrichtigungen an einen Zieldienst.
  • Microsoft Graph-Benachrichtigungsdienste, die Benachrichtigungsabonnements verwalten und Änderungsbenachrichtigungen an Clients übermitteln.

Überlegungen

Die folgenden Überlegungen unterstützen die Verwendung dieses Integrationsmusters:

  • Verfügbarkeit: Azure Event Hubs Hochverfügbarkeit über mehrere Verfügbarkeitszonen hinweg bereitstellen.

  • Latenz: Azure Event Hubs können Millionen von Ereignissen pro Sekunde mit geringer Latenz verarbeiten.

  • Skalierbarkeit: Azure Event Hubs je nach Dienstebene Ereignisspeicher und -aufbewahrung für bis zu 90 Tage bereitstellen, sodass die benutzerdefinierte App Ereignisse in ihrem eigenen Tempo nutzen und verarbeiten kann.

  • Lösungskomplexität: Diese Lösung erfordert benutzerdefinierten Code zum Verwalten von Abonnements und Verschlüsselungsschlüssel zum Verarbeiten der Daten. Da diese Lösung keine Elastizität und die Fähigkeit erfordert, auf eine unerwartete Menge von Ereignissen zu reagieren, ist sie weniger komplex als die Integration mit Webhooks im Pushmodus. Diese Lösung weist eine mittlere Komplexität auf.