M365Con 2027 – die kostenlose Online-Konferenz · 11–22 Jan 2027 · 120 sessions→ m365con.net

Blog · Mirko Peters

Zuverlässige Microsoft Graph Webhooks für SharePoint und Microsoft 365 aufbauen

Von ·

Microsoft Graph Webhooks für SharePoint und Microsoft 365 zuverlässig aufbauen – mit sicherer Validierung, automatisierten Verlängerungen und robuster Benachrichtigungszustellung.

Automatisch mit KI aus dem Originalbeitrag übersetzt. Englisches Original lesen

▶ BLOGHow to Build ReliableMicrosoft Graph Webhoo……M365.FM
Titelbild: How to Build Reliable Microsoft Graph Webhooks for SharePoint and M365

Zuverlässige Microsoft Graph Webhooks für SharePoint und Microsoft 365 aufzubauen, kann selbst erfahrene Entwickler vor Herausforderungen stellen. Probleme zeigen sich etwa dann, wenn die Validierung fehlschlägt, weil Ihr Endpunkt das Validierungstoken nicht zurückgibt oder keinen 200-OK-Status liefert. Häufige Ursachen sind Endpunkte, die von Firewalls blockiert werden, falsche Netzwerkkonfigurationen oder Middleware, die in die Kommunikation eingreift. Verpasste Wiederholungen und abgelaufene Abonnements treten oft dann auf, wenn der Dienst die Validierungsanfrage nicht erhält oder Endpunkte nicht öffentlich erreichbar sind. In diesem Beitrag erfahren Sie, wie Sie diese Fallstricke vermeiden und eine robuste, sichere Benachrichtigungspipeline aufbauen – inklusive einer praktischen Checkliste und bewährter Vorgehensweisen.

Das Wichtigste in Kürze

Grundlagen der Microsoft Graph Webhooks

Was sind Microsoft Graph Webhooks?

Ein Webhook ist ein HTTP-Request, der durch ein Ereignis in einem Quellsystem ausgelöst und an ein Zielsystem gesendet wird, häufig zusammen mit einer Datennutzlast. Webhooks laufen automatisiert ab: Sie werden automatisch versendet, sobald ihr Ereignis im Quellsystem eintritt.

Mit Microsoft Graph Webhooks erhalten Sie Echtzeitbenachrichtigungen über Änderungen in Ihrer Microsoft-365-Umgebung. Sie müssen Microsoft Graph also nicht ständig nach Aktualisierungen abfragen. Stattdessen wird Ihre Anwendung benachrichtigt, sobald etwas Wichtiges passiert. So bleiben Ihre Daten aktuell und mit den über Microsoft Graph verfügbaren Daten synchron. Außerdem entfällt die Notwendigkeit einer Polling-Infrastruktur, bei der Sie regelmäßig Anfragen an Microsoft Graph senden, um nach den neuesten Änderungen zu suchen.

Sie können Benachrichtigungen für viele Ereignistypen einrichten, zum Beispiel für:

Sie könnten beispielsweise ein Konto in einem externen Zeiterfassungssystem automatisch anlegen lassen, sobald ein neuer Benutzer in Ihrer Organisation hinzukommt. Ebenso ließe sich eine Verarbeitung auslösen, etwa eine Spesenabrechnung, sobald jemand eine neue Datei in eine SharePoint-Bibliothek oder einen OneDrive-Ordner hochlädt. Die Kombination mit Delta-Abfragen ist dabei oft sinnvoll.

Warum Zuverlässigkeit wichtig ist

Microsoft Graph Webhooks spielen eine zentrale Rolle, wenn es darum geht, Ihre SharePoint- und Microsoft-365-Integrationen reaktionsschnell und aktuell zu halten. Arbeitet Ihre Webhook-Pipeline zuverlässig, reagieren Ihre Anwendungen in Echtzeit auf Änderungen. Benutzer sehen stets die aktuellsten Daten, was ihre Erfahrung verbessert und das Risiko veralteter Informationen verringert.

Allerdings können Zuverlässigkeitsprobleme ernsthafte Folgen haben:

Für eine robuste Lösung sollten Sie Webhooks mit Delta-Abfragen kombinieren, um Änderungen effizient nachzuverfolgen. Außerdem sollten Sie Prozesse einrichten, die Abonnements regelmäßig prüfen und verlängern. Bei häufig aktualisierten Ressourcen hilft das Bündeln von Anfragen (Batching), die Last zu steuern.

Einrichtung und Validierung von Webhooks

Die Einrichtung von Microsoft Graph Webhooks für SharePoint und Microsoft 365 umfasst mehrere wichtige Schritte. Sie müssen Ihren Webhook registrieren, Validierungsanfragen verarbeiten und Ihren Endpunkt absichern. Jeder Schritt ist entscheidend dafür, dass Ihre Benachrichtigungspipeline zuverlässig und sicher funktioniert.

Microsoft Graph Webhooks registrieren

Sie beginnen mit der Erstellung eines Webhook-Abonnements. Dadurch kann Ihre Anwendung Benachrichtigungen über Änderungen an Microsoft 365-Ressourcen empfangen. Gehen Sie zur Registrierung Ihres Webhooks wie folgt vor:

  1. Erstellen Sie einen öffentlich zugänglichen Endpunkt, der HTTPS verwendet. Über diesen Endpunkt empfängt Microsoft Graph die Benachrichtigungen.

  2. Senden Sie eine POST-Anforderung an den Endpunkt /subscriptions in Microsoft Graph.

  3. Geben Sie in Ihrer Abonnementanforderung Folgendes an:

    • changeType: Die Änderungsarten, die Sie nachverfolgen möchten, etwa „created“, „updated“ oder „deleted“.

    • notificationUrl: Die URL Ihres Webhook-Endpunkts.

    • resource: Die Ressource, die Sie überwachen möchten, z. B. „/users“ oder „/drive/root“.

    • expirationDateTime: Datum und Uhrzeit, zu denen das Abonnement ablaufen soll.

    • Optionale Eigenschaften wie clientState helfen Ihnen, die Herkunft von Benachrichtigungen zu überprüfen.

Beispiel für eine Abonnementanforderung:

POST https://graph.microsoft.com/v1.0/subscriptions
Authorization: bearer eyJ0eXAiOiJ[..]
Content-Type: application/json

{
  "changeType": "updated",
  "clientState": "SecretClientState",
  "notificationUrl": "https://yourdomain.com/api/notifications",
  "resource": "/users",
  "expirationDateTime": "2024-05-01T00:00:00.0000000+00:00"
}

Stellen Sie sicher, dass Ihr Endpunkt öffentlich erreichbar und per HTTPS gesichert ist. Microsoft Graph validiert die Benachrichtigungs-URL, bevor es das Abonnement abschließt. Sie müssen Abonnements regelmäßig erneuern, damit weiterhin Benachrichtigungen eingehen. Ihr Endpunkt sollte zeitnah und konsistent HTTP-Antworten liefern, damit keine Benachrichtigungen verloren gehen.

Hier finden Sie eine Zusammenfassung der erforderlichen Felder für die Registrierung:

Feld

Beschreibung

changeType

Legt die Art der Änderung fest, die die Benachrichtigung auslöst (z. B. „updated“).

clientState

Eine benutzerdefinierte Zeichenfolge, mit der sich die Herkunft der Benachrichtigung überprüfen lässt.

notificationUrl

Der Endpunkt, an den Benachrichtigungen gesendet werden.

resource

Die überwachte Ressource (z. B. „/users“).

expirationDateTime

Datum und Uhrzeit, zu denen das Abonnement abläuft.

validationToken

Ein Token, das in der Antwort zurückgegeben werden muss, um die Abonnementanforderung zu validieren.

Validierungsanfragen verarbeiten

Nachdem Sie Ihren Webhook registriert haben, sendet Microsoft Graph eine Validierungsanfrage an Ihren Endpunkt. Damit der Abonnementvorgang abgeschlossen wird, müssen Sie korrekt antworten. Wenn Ihr Endpunkt eine GET-Anforderung mit dem Abfrageparameter validationToken empfängt, geben Sie dieses Token im Antworttext als Klartext zurück und senden den Statuscode 200 OK.

Anforderungstyp

URL

Abfrageparameter

Erwarteter Antwortstatus

Content-Type

Antworttext

GET

https://yourdomain.com

validationToken=1234

200 OK

text/plain

1234

💡 Tipp: Wenn Sie auf Validierungsanfragen schnell und korrekt antworten, wird Ihr Webhook-Abonnement ohne Probleme aktiviert.

HTTPS und Endpunktsicherheit

Die Absicherung Ihres Webhook-Endpunkts ist unverzichtbar. Microsoft Graph Webhooks erfordern HTTPS-Verschlüsselung, um sensible Daten während der Übertragung zu schützen. Prüfen Sie eingehende Anforderungen, indem Sie die Signatur mit einem gemeinsamen geheimen Schlüssel verifizieren. Verwenden Sie für Ihre Callback-URLs komplexe, zufällig generierte Pfade, damit sie schwerer zu erraten sind.

Jeder Webhook-Callback verwendet ein signiertes JSON Web Token (JWT) im Authentication-Header der eingehenden HTTPS-Anforderung. Sie können standardisierte OpenID Connect JWT-Validierungsverfahren verwenden, um die Integrität des Tokens sicherzustellen.

Für alle Webhook-Endpunkte müssen Sie HTTPS verwenden. Diese Anforderung schützt Ihre Daten und stellt die Einhaltung der Sicherheitsstandards von Microsoft sicher. Die Absicherung Ihres Endpunkts hilft, unbefugten Zugriff und Angriffe zu verhindern.

Wenn Sie diese Schritte befolgen, richten Sie eine zuverlässige und sichere Microsoft Graph Webhooks-Pipeline für SharePoint und Microsoft 365 ein. So stellen Sie sicher, dass Ihre Anwendung Benachrichtigungen zeitnah und sicher erhält.

Verarbeitung und Absicherung von Benachrichtigungen

Sobald Sie Ihren Webhook-Endpunkt eingerichtet haben, müssen Sie eingehende Benachrichtigungen sicher und zuverlässig verarbeiten. Dieser Schritt stellt sicher, dass Ihre Anwendung nur gültige Anforderungen akzeptiert und keine wichtigen Aktualisierungen von Microsoft Graph Webhooks verpasst.

Authentifizierung und Überprüfung von JWT-Tokens

Jede Benachrichtigung von Microsoft Graph enthält im Authorization-Header ein JSON Web Token (JWT). Sie müssen dieses Token überprüfen, bevor Sie eine Nutzlast verarbeiten. Eine korrekte JWT-Validierung schützt Ihr System vor nicht autorisierten oder manipulierten Anforderungen.

Gehen Sie wie folgt vor, um JWT-Tokens zu authentifizieren und zu überprüfen:

  1. Prüfen Sie, ob das Token abgelaufen ist. Tokens enthalten eine Ablaufzeit, und Sie sollten jedes Token ablehnen, dessen Ablaufzeit überschritten ist.

  2. Vergewissern Sie sich, dass die Microsoft Identity Platform das Token ausgestellt hat. Validieren Sie die Signatur des Tokens, um sicherzustellen, dass es nicht verändert wurde.

  3. Stellen Sie sicher, dass der Claim „audience“ im Token mit der ID Ihrer Anwendung übereinstimmt. Dieser Schritt bestätigt, dass das Token für Ihre App bestimmt war.

  4. Prüfen Sie, ob die Eigenschaft azp (authorized party) dem erwarteten Wert für Ihre Anwendung entspricht.

Tipp: Verwenden Sie für die JWT-Validierung immer vertrauenswürdige Bibliotheken. Diese helfen Ihnen, typische Fehler zu vermeiden, und halten Ihre Anwendung sicher.

Achten Sie außerdem auf typische Sicherheitslücken beim Umgang mit JWT-Tokens:

Wenn Sie diese Schritte und Vorsichtsmaßnahmen befolgen, stellen Sie sicher, dass nur legitime Benachrichtigungen Ihre Anwendung erreichen.

Verarbeitung von Benachrichtigungs-Nutzlasten

Nachdem Sie die Benachrichtigung authentifiziert haben, müssen Sie die Nutzlast sicher verarbeiten. Nutzlasten enthalten Informationen zum Ereignis, das den Webhook ausgelöst hat. Um die Datenintegrität zu wahren und Sicherheitsprobleme zu vermeiden, sollten Sie Folgendes tun:

Hinweis: Die Validierung und Bereinigung von Nutzlasten schützt Ihr System vor fehlerhaften Daten und Sicherheitsbedrohungen.

Implementierung von Wiederholungs- und Backoff-Logik

Netzwerkprobleme oder vorübergehende Ausfälle können dazu führen, dass die Zustellung von Benachrichtigungen fehlschlägt. Um Datenverluste zu vermeiden, benötigen Sie eine robuste Strategie für Wiederholungen und Backoff. Microsoft empfiehlt exponentielles Backoff und strukturierte Warteschlangen, um Wiederholungen zu steuern.

Die folgende Tabelle fasst übliche Mechanismen für Wiederholungen und Backoff zusammen:

Mechanismustyp

Beschreibung

Exponentielles Backoff

Erhöht die Wartezeit zwischen Wiederholungen nach jedem Fehler exponentiell.

Hauptwarteschlange

Die initiale Queue, in der Webhook-Ereignisse veröffentlicht werden, z. B. main.webhook.queue.

Retry-Queues

Queues für die Behandlung von Wiederholungsversuchen, benannt retry.webhook.queue-M, wobei M die Nummer des Versuchs ist.

Abandon-Queue

Eine finale Queue für Nachrichten, die nach allen Wiederholungsversuchen fehlgeschlagen sind, z. B. abandon.webhook.queue.

Berechnung der TTL

Die Time-to-live (TTL) für jede Retry-Queue wird mit der folgenden Formel berechnet: {interval} + {current_retry_attempt} ^ 4.

x-retry-Header

Ein Header, der die Anzahl der Wiederholungsversuche für jede Nachricht nachverfolgt.

Dead Letter Exchange

Ein Exchange, der Nachrichten empfängt, die nicht mehr wiederholt werden können, und sie an die Abandon-Queue weiterleitet.

Wenn Sie keine saubere Logik für Wiederholungen und Backoff implementieren, riskiert Ihre Anwendung, Benachrichtigungen zu verlieren oder Dateninkonsistenzen zu erzeugen. Fehlgeschlagene Anfragen oder Drosselung durch Ratenbegrenzung können verhindern, dass Sie wichtige Updates erhalten. Exponentielles Backoff hilft Ihnen, gedrosselte Anfragen zu steuern, und verringert das Risiko, Ihr System oder Microsoft Graph Webhooks zu überlasten.

🛡️ Best Practice: Erfassen Sie Wiederholungsversuche immer und verschieben Sie fehlgeschlagene Nachrichten nach mehreren Versuchen in eine Abandon-Queue. So können Sie anhaltende Probleme untersuchen und beheben, ohne Daten zu verlieren.

Durch die Authentifizierung von JWT-Tokens, die Validierung von Payloads und eine zuverlässige Wiederholungslogik schaffen Sie eine sichere und robuste Benachrichtigungspipeline. Mit diesen Schritten verarbeiten Sie jede Benachrichtigung von Microsoft Graph Webhooks sicher und effizient.

Verwalten von Abonnements und Änderungsverfolgung

Automatisierte Verlängerung von Abonnements

Damit Sie keine Benachrichtigungen verpassen, müssen Sie Ihre Webhook-Abonnements aktiv halten. Microsoft Graph-Abonnements laufen nach einer festgelegten Zeit ab. Wenn Sie sie nicht verlängern, empfängt Ihre Anwendung keine Updates mehr. Sie können die Verlängerung mit verschiedenen Methoden automatisieren:

Tipp: Automatisierte Verlängerungen reduzieren den manuellen Aufwand und stellen sicher, dass Ihr System dauerhaft mit Microsoft Graph verbunden bleibt.

Überwachung und Alarmierung

Sie müssen den Zustand Ihrer Webhook-Pipeline überwachen. Richten Sie Warnmeldungen ein, die Sie informieren, wenn ein Abonnement nicht verlängert werden kann oder Ihr Endpunkt nicht mehr antwortet. Protokollieren Sie eingehende Benachrichtigungen und Verlängerungsversuche. So erkennen Sie Probleme, bevor sie Benutzer beeinträchtigen.

🛎️ Proaktive Überwachung hilft Ihnen, Probleme schnell zu beheben, und hält Ihre Integration zuverlässig.

Delta-Abfragen zur Änderungsverfolgung

Delta-Abfragen helfen Ihnen, Änderungen in SharePoint- und Microsoft 365-Ressourcen effizient nachzuverfolgen. Sie können damit nur neue oder aktualisierte Daten abrufen. Das reduziert die Notwendigkeit häufiger Abfragen und senkt das Risiko einer Drosselung.

Delta-Abfragen haben allerdings einige Einschränkungen:

Einschränkung/Herausforderung

Beschreibung

OData-Kontext

Wird bei der Änderungsverfolgung von Beziehungen falsch zurückgegeben.

Schemaerweiterungen

Werden mit einer $select-Anweisung nicht zurückgegeben, ohne diese aber schon.

Offene Erweiterungen

Clients können Änderungen an offenen Erweiterungen oder registrierten Schemaerweiterungen nicht nachverfolgen.

Hinweis: Testen Sie Ihre Delta-Abfrage-Implementierung immer gründlich, um diese Einschränkungen zu berücksichtigen und eine korrekte Änderungsverfolgung sicherzustellen.

Durch die Automatisierung der Verlängerungen, die Überwachung Ihrer Pipeline und den Einsatz von Delta-Abfragen entsteht ein zuverlässiges und effizientes Webhook-System für SharePoint und Microsoft 365.

Mit einem klar strukturierten Vorgehen lassen sich zuverlässige Microsoft Graph-Webhooks aufbauen. Beginnen Sie damit, Abonnements zu erstellen und Delta-Abfragen zu verwenden, um Änderungen nachzuverfolgen. Automatisieren Sie die Verlängerungen und überwachen Sie Ihre Pipeline auf Probleme. Setzen Sie bei jedem Schritt auf Validierung, Sicherheit und Ausfallsicherheit. Um die Produktionsreife zu prüfen, sehen Sie sich diese Checkliste an:

Messtyp

Beschreibung

Sicherheitsscans in der CI-Pipeline

Scannen Sie vor der Bereitstellung auf Sicherheitslücken.

Automatisches Prüfprotokoll

Protokollieren Sie jeden Build und jede Bereitstellung für Compliance und Audits.

Wenden Sie diese bewährten Methoden an, damit Ihre SharePoint- und M365-Integrationen zuverlässig bleiben.

Häufige Fragen

Wie verlängern Sie ein abgelaufenes Microsoft Graph-Webhook-Abonnement?

Senden Sie eine PATCH-Anforderung an den Microsoft Graph-Endpunkt /subscriptions/{id}. Aktualisieren Sie das Feld expirationDateTime. Planen Sie diesen Vorgang so, dass er täglich ausgeführt wird. So bleiben Ihre Abonnements aktiv und verpasste Benachrichtigungen werden vermieden.

Was sollten Sie tun, wenn Ihr Webhook-Endpunkt die Validierung nicht besteht?

Prüfen Sie, ob Ihr Endpunkt das validationToken als Klartext im Antworttext zurückgibt. Antworten Sie mit dem Status 200 OK. Stellen Sie sicher, dass Ihr Endpunkt öffentlich erreichbar ist und HTTPS verwendet.

Wie sichern Sie Ihren Webhook-Endpunkt ab?

Verwenden Sie für alle Endpunkte HTTPS. Validieren Sie in jeder Anforderung die JWT-Token. Beschränken Sie den Zugriff durch Authentifizierung und IP-Whitelisting. Überwachen Sie ungewöhnliche Aktivitäten. Überprüfen Sie Ihre Sicherheitseinstellungen regelmäßig.

Warum sollten Sie Delta-Abfragen mit Webhooks verwenden?

Delta-Abfragen helfen Ihnen, nur neue oder geänderte Daten nachzuverfolgen. Das reduziert die Bandbreite und verbessert die Leistung. Sie vermeiden es, bei jedem Aufruf alle Daten herunterzuladen, und machen Ihre Integration dadurch schneller und effizienter.

Wie gehen Sie am besten mit fehlgeschlagenen Webhook-Benachrichtigungen um?

Implementieren Sie eine Wiederholungslogik mit exponentiellem Backoff. Erfassen Sie die Wiederholungsversuche über Header oder Warteschlangen. Verschieben Sie Nachrichten, die nach mehreren Wiederholungen fehlschlagen, in eine Abbruch-Warteschlange (Abandon Queue). Untersuchen Sie diese Fehler, um Datenverluste zu vermeiden.

Microsoft Graph Change notifications and webhooks SharePoint OneDrive Microsoft 365

Verwandte Artikel

RSS