Graph Explorer meistern: Den Weg eines Benutzers End-to-End nachverfolgen
Von Mirko Peters ·
Willkommen zurück im Begleitblog zum Podcast! Im heutigen Beitrag gehen wir weit über die fragmentierten Verwaltungsoberflächen hinaus, die wir alle kennen und mit denen wir manchmal hadern…
Automatisch mit KI aus dem Originalbeitrag übersetzt. Englisches Original lesen
Willkommen zurück im Begleitblog zum Podcast! Im heutigen Beitrag gehen wir weit über die fragmentierten Verwaltungsoberflächen hinaus, die wir alle kennen und mit denen wir manchmal hadern. Wenn Sie schon einmal versucht haben, einen lückenlosen Audit-Trail darüber zusammenzustellen, worauf ein bestimmter Benutzer in Microsoft 365 zugegriffen, was er freigegeben oder bearbeitet hat, wissen Sie, wie zersplittert sich die nativen Admin Center anfühlen können. Deshalb tauchen wir tief in Microsoft Graph ein. Mit der Graph API wechseln wir nahtlos von einzelnen Benutzern zu Gruppen, SharePoint-Websites, Dateien, externen Links und sogar aktiven Betrachtern. Wenn Sie der Audiodiskussion folgen möchten, die direkt zu diesem Leitfaden passt, schauen Sie sich die zugehörige Folge Map Microsoft 365 Users, Groups, Files, and Shares with Graph an.
Warum M365 nicht isoliert ist
Eine der häufigsten Fehlannahmen unter Administratoren und Sicherheitsteams lautet, dass einzelne Microsoft-365-Dienste als sichere, in sich geschlossene Silos arbeiten. Tatsächlich stehen Teams-Chats, SharePoint-Bibliotheken und OneDrive-Ordner über zugrunde liegende Gruppenmitgliedschaften und die Vererbung von Berechtigungen permanent miteinander in Verbindung.
- Teams-Chats, SharePoint-Bibliotheken und OneDrive-Ordner tauschen Inhalte über Gruppenmitgliedschaften aus.
- Eine einfache Aktion „einen Benutzer einer Gruppe hinzufügen“ kann still und leise zahlreiche zugrunde liegende Websites, Kanäle und externe Freigaben freischalten, ohne in den Standardansichten eine offensichtliche Audit-Nachvollziehbarkeit zu hinterlassen.
- Ihr Compliance-Risiko entsteht aus diesen unsichtbaren Wegen, etwa aus Gastlinks in privaten Chats, Dateien, die in mehreren Bibliotheken gespiegelt werden, und verwaisten Freigaben, die lange nach Projektabschluss zurückbleiben.
Footprint-Analyse mit Graph Explorer (Zugriffspunkte von Benutzer zu Datei)
Um zu verstehen, wie sich Zugriffe im Mandanten ausbreiten, brauchen Sie ein wiederholbares Abfragemuster. Mit einer gezielten Kette von API-Aufrufen im Graph Explorer lässt sich ein vollständiges Bild der Zugriffspunkte eines Benutzers erstellen:
- Verankern Sie den Zielbenutzer:
GET /v1.0/users/{userPrincipalName}?$select=id,displayName,userPrincipalName - Ermitteln Sie die direkten und indirekten Mitgliedschaften:
GET /v1.0/users/{id}/memberOf?$select=id,displayName - Wechseln Sie zu den Ressourcen, auf die diese Gruppen verweisen. Für Microsoft-365-Gruppen und Teams zielen Sie auf die zugrunde liegende SharePoint-Website:
GET /v1.0/groups/{groupId}/drive/root/children?$select=id,name,lastModifiedDateTime,webUrl
Oder listen Sie die Laufwerke und Bibliotheken der Website direkt auf:
GET /v1.0/sites/{siteId}/drives - Rufen Sie Elementberechtigungen und Freigabelinks ab:
GET /v1.0/drives/{driveId}/items/{itemId}/permissions?$select=id,grantedToV2,link,roles,shareId - Verfolgen Sie, wer wann worauf zugegriffen hat, soweit verfügbar, über Audit- und Anmeldeprotokolle:
GET /v1.0/auditLogs/signIns oder /security/alerts, ergänzt um den Kontext zu Datei, Website oder Freigabe. - Schließen Sie den Kreis zurück zu Teams-Beiträgen und Kanalnachrichten:
GET /v1.0/teams/{teamId}/channels/{channelId}/messages?$search="filename" (erfordert Beta-Endpunkte und entsprechende Berechtigungen).
Filter gegen Datenrauschen, die Sie tatsächlich nutzen werden
Rohdaten aus Microsoft Graph können sich schnell anfühlen, als tränken Sie Ihren Durst aus dem Feuerwehrschlauch. Um riesige Datenmengen in verwertbare Erkenntnisse zu verwandeln, müssen Sie präzise Abfrageparameter einsetzen.
- Externe Freigaben isolieren, die in den letzten 7 Tagen erstellt wurden, indem Sie Bereichsfilter anwenden:
GET /v1.0/drives/{driveId}/items/{itemId}/permissions?$filter=link/scope eq 'anonymous' or link/scope eq 'organization'&$select=… - Riskante Dateitypen isolieren, indem Sie Dateierweiterungen anhängen:
Anhängen: $filter=endsWith(resourceReference/name,'.xlsm') or endsWith(resourceReference/name,'.pst') - Erwähnungen sensibler Begriffe in Teams-Kanälen außerhalb der Geschäftszeiten erfassen:
GET /v1.0/teams/{teamId}/channels/{channelId}/messages?$search="confidential", und filtern Sie die Ergebnisse anschließend nach createdDateTime außerhalb der üblichen Geschäftszeiten. - Halten Sie Ihre Nutzdaten schlank und effizient, indem Sie immer $select verwenden, um nur IDs, Namen, Web-URLs, Zeitstempel der letzten Änderung und minimale Berechtigungsfelder zurückzugeben.
- Begrenzen Sie Ihre Ergebnisse für eine schnelle Triage mit $top=50 für kurze Stichproben. Entfernen Sie diese Begrenzung jedoch, wenn Sie Daten in einen dauerhaften Speicher exportieren.
Muss-Anforderungen für Enterprise-Umgebungen (Paginierung und Throttling)
Wenn Sie diese Abfragen von einem einzelnen Testbenutzer auf einen Enterprise-Mandanten mit Hunderttausenden Objekten ausweiten, werden Performance und Zuverlässigkeit entscheidend.
- Ein Datenabruf ist erst dann abgeschlossen, wenn Sie für jede einzelne Ergebnisseite explizit der Eigenschaft @odata.nextLink folgen.
- Berücksichtigen Sie HTTP-429-Antworten zur Ratenbegrenzung, indem Sie Routinen mit exponentiellem Backoff implementieren und sicherstellen, dass Ihr Skript sicher dort fortgesetzt werden kann, wo es unterbrochen wurde.
- Bündeln Sie Ihre Abfragen mit Bedacht. Bevorzugen Sie wenige, größere und gut strukturierte Anfragen statt einer Flut kleiner Aufrufe, und speichern Sie Zuordnungen von Gruppen zu Websites konsequent im Cache.
- Partitionieren Sie umfangreiche Mandanten-Crawls anhand bestimmter SharePoint-Website-IDs oder Datumsbereiche, um Zeitüberschreitungen bei Anfragen zu vermeiden, und planen Sie diese aufwendigen Vorgänge für Zeiten außerhalb der Hauptlastzeiten.
Typische Fallstricke (und schnelle Lösungen)
Selbst erfahrene Administratoren stoßen beim Aufbau automatisierter Graph-Abfrage-Pipelines auf Hindernisse. Behalten Sie diese typischen Fallen und ihre schnellen Lösungen im Blick:
- Fallstrick: CSV-Exporte driften auseinander und brechen, wenn sich die zugrunde liegenden Schemata im Laufe der Zeit ändern.
Lösung: Nutzen Sie die Graph API direkt mit versionierten Transformationen und einer robusten Behandlung von "unbekannten" Feldern. - Fallstrick: Gemischte Identifikatoren wie GUIDs und User Principal Names (UPNs) brechen Datenbank-Joins.
Lösung: Normalisieren Sie Ihre Daten in ein einheitliches semantisches Modell, das Benutzer, Gruppen, Websites, Laufwerke, Elemente und Berechtigungen umfasst. - Fallstrick: Der "Seite-1-Bias" blendet Ihr Monitoring aus und verbirgt gravierende Sicherheitsvorfälle, die auf tieferen Seiten liegen.
Lösung: Protokollieren Sie stets die Gesamtzahl verarbeiteter Seiten und lösen Sie Warnungen aus, wenn die erwarteten Datensatzmengen unerwartet sinken. - Fallstrick: Sie werden von einer unübersichtlichen Menge irrelevanter Dateien überflutet.
Lösung: Filtern Sie gezielt nach Linkbereichen, bestimmten Zeitfenstern für Erstellung oder Änderung und gezielten Listen sensibler Begriffe. - Fallstrick: Teams-Freigaben lassen sich nicht auf die zugrunde liegenden Dateien zurückführen.
Lösung: Ordnen Sie die Web-URLs der Kanalnachrichten direkt den Driveelementen zu und speichern Sie beide eindeutigen Kennungen.
KPIs auf Führungsebene, die dadurch möglich werden
Die Umwandlung roher Graph-API-Ausgaben in strukturierte Kennzahlen verschafft der Geschäftsleitung die Transparenz, die sie dringend benötigt. Mögliche Leistungskennzahlen sind unter anderem:
- Geschwindigkeit externer Freigaben: Anzahl neu erstellter Gastlinks pro Woche, aufgeschlüsselt nach Website oder Team.
- Zugriffsrate auf sensible Dateien: Nachverfolgung eindeutiger Zugreifer auf gekennzeichnete Inhalte, mit Trennung interner Benutzer und externer Gäste.
- Gruppen-Folgerisiko: Ermittlung von Dateien, die innerhalb von 24 Stunden nach einer Änderung der Gruppenmitgliedschaft plötzlich zugänglich werden.
- Verbreitung im Schatten: Nachverfolgung sensibler Dateien, die sich innerhalb eines einzelnen Sprints über mehrere Teams und Websites ausbreiten.
- Wirksamkeit der Bereinigung: Zählung widerrufener Freigabelinks und Messung der gesamten Zeit bis zur Behebung.
Schnellstart-Abfragerezept (Kopieren-und-Einfügen-Ablauf)
Wenn Sie jetzt sofort Ihre erste durchgängige Auswertung im Graph Explorer starten möchten, nutzen Sie diesen sequenziellen Kopieren-und-Einfügen-Ablauf:
- Basisdaten und Gruppen des Benutzers abfragen:
/users/{upn}?$select=id,displayName
/users/{id}/memberOf?$select=id,displayName - Für jede gefundene Microsoft-365-Gruppe die Driveelemente abrufen:
/groups/{groupId}/drive/root/children?$select=id,name,webUrl,lastModifiedDateTime&$top=200
Achten Sie darauf, @odata.nextLink zu folgen. - Für jedes Dateielement die Berechtigungen prüfen:
/drives/{driveId}/items/{itemId}/permissions?$select=id,roles,grantedToV2,link
Filtern Sie so, dass link/scope in ('anonymous','organization') liegt. - Exportieren Sie Ihre bereinigten Datensätze in Ihr Data Warehouse, einschließlich Mandantenzeit, Website-ID, Drive-ID, Element-ID, Web-URL, Eigentümer, Geltungsbereich und Ablaufdaten.
- Visualisieren Sie die aggregierten Daten in Power BI für die laufende Überwachung der Organisation.
Daraus ein dauerhaftes Dashboard machen
Einmalige Abfragen im Graph Explorer eignen sich hervorragend für Untersuchungen, aber echte Governance erfordert Automatisierung. Überführen Sie Ihre Abfragen in ein dauerhaftes operatives Dashboard, indem Sie belastbare Dataflows einrichten, Tabellen für Benutzer, Gruppen, Websites, Drives, Elemente, Berechtigungen und Nachrichten normalisieren und um Ihre Dateielemente ein Sternschema aufbauen. Richten Sie inkrementelle Datenaktualisierungen auf Basis der Änderungsdaten ein und konfigurieren Sie Echtzeitwarnungen, die auslösen, sobald neue externe Links auf stark schützenswerten, gekennzeichneten Inhalten erscheinen.
30-Tage-Einführungsplan
Bereit, dies in Ihrer Organisation umzusetzen? Folgen Sie diesem strukturierten Vier-Wochen-Einführungsrahmen:
- Woche 1: Schließen Sie die App-Registrierung ab, weisen Sie Graph-API-Berechtigungen mit minimalen Rechten zu und erstellen Sie Basisabfragen mit präzisen $select- und $filter-Parametern.
- Woche 2: Paginierungsskripte entwickeln, die Normalisierung von Identifikatoren von IDs zu UPNs umsetzen und Ihren allerersten erfolgreichen Datenexport durchführen.
- Woche 3: Ihr Power BI-Datenmodell und die grundlegenden KPIs aufbauen, einschließlich der Nachverfolgung externer Freigaben und der Analyse von Ausbreitungsrisiken.
- Woche 4: Ihre Datenaktualisierungen automatisieren, Warnmeldungen für Anomalien konfigurieren und Standardbetriebsverfahren für Ihre Sicherheits- und Compliance-Teams dokumentieren.
Für wen dieser Leitfaden relevant ist
Diese Methode ist auf bestimmte Rollen in Ihrem Unternehmen zugeschnitten:
- Microsoft 365-Administratoren und SecOps-Verantwortliche, die vermuten, dass ihre standardmäßigen Admin-Dashboards kritische Grauzonen verbergen.
- Compliance-Teams, die durchgängige Transparenz über Freigaben benötigen, ohne zusätzliche, teure Drittanbieter-Software einzusetzen.
- Verantwortliche für die Zusammenarbeit, die letztlich dafür sorgen, dass externe Freigaben sicher und kontrolliert erfolgen.
Praxistipps
Behalten Sie diese praktischen Tipps im Blick, während Sie Ihre Graph-Automatisierung aufbauen:
- Beginnen Sie Ihre Untersuchung immer entweder beim Benutzer oder bei der Datei und arbeiten Sie sich dann in beide Richtungen nach außen vor, um blinde Flecken auszuschließen.
- Behandeln Sie jede Aktion „Zu Gruppe hinzufügen“ als Änderungsereignis mit hohem Risiko und prüfen Sie die nachgelagerten Auswirkungen auf Zugriffe innerhalb von 24 Stunden.
- Pflegen Sie eine aktuelle Liste sensibler Begriffe, nach denen Sie in Teams-Nachrichten und Dateinamen suchen, und überprüfen Sie diese Liste regelmäßig.
- Protokollieren Sie die verarbeiteten Seitenanzahlen und Datensatzvolumen sorgfältig. Manchmal ist völlige Stille in Ihren Protokollen das eigentliche Signal für einen fehlerhaften Pipeline-Job.
Fazit
Microsoft Graph zu beherrschen, um Benutzerspuren durchgängig nachzuverfolgen, schließt die Lücke zwischen fragmentierten Verwaltungsansichten und echter unternehmensweiter Transparenz. Wenn Sie Ihren Blickwinkel von isolierten Silos hin zur Zuordnung von Beziehungen und Zugriffen verlagern, können Sie sensible Daten proaktiv schützen, verdeckte Weitergaben beseitigen und der Geschäftsführung die handlungsrelevanten KPIs liefern, die sie benötigt. Weitere Expertenanalysen, Praxisbeispiele und vertiefte Einblicke in Szenarien wie dieses finden Sie in der vollständigen Folge unter Map Microsoft 365 Users, Groups, Files, and Shares with Graph.
Abonnieren
Für tiefere Einblicke und praxisnahe Graph-Rezepte finden Sie neue Folgen unter m365.show/subscribe