Freigeben über


Zugreifen auf Microsoft Graph-Aktivitätsprotokolle

Microsoft Graph-Aktivitätsprotokolle sind ein Überwachungsprotokoll aller HTTP-Anforderungen, die der Microsoft Graph-Dienst für einen Mandanten empfangen und verarbeitet hat. Mandantenadministratoren können die Sammlung aktivieren und Downstreamziele für diese Protokolle mithilfe von Diagnoseeinstellungen in Azure Monitor konfigurieren. Die Protokolle werden zur Analyse in Log Analytics gespeichert. Sie können sie zur langfristigen Speicherung oder zum Streamen in Azure Storage exportieren, indem Sie Azure Event Hubs zu externen SIEM-Tools für Warnungen, Analysen oder Archivierung verwenden.

Alle Protokolle für API-Anforderungen, die von Branchenanwendungen, API-Clients, SDKs und von Microsoft-Anwendungen wie Outlook, Microsoft Teams oder den Microsoft Entra Admin Center gesendet werden, sind verfügbar.

Dieser Dienst ist in den folgenden nationalen Cloudbereitstellungen verfügbar.

Weltweiter Service US Government L4 US Government L5 (DOD) China, betrieben von 21Vianet

Voraussetzungen

Für den Zugriff auf die Microsoft Graph-Aktivitätsprotokolle benötigen Sie die folgenden Berechtigungen.

  • Eine Microsoft Entra ID P1- oder P2-Mandantenlizenz in Ihrem Mandanten.
  • Ein Administrator mit einer unterstützten Microsoft Entra Administratorrolle. Sicherheitsadministrator ist die einzige Administratorrolle mit den geringsten Berechtigungen, die zum Konfigurieren von Diagnoseeinstellungen unterstützt wird.
  • Es werden ein Azure-Abonnement mit einem der folgenden Protokollziele und Berechtigungen für den Zugriff auf Daten in den entsprechenden Protokollzielen konfiguriert.
    • Einen Azure Log Analytics-Arbeitsbereich zum Senden von Protokollen an Azure Monitor
    • Ein Azure Storage-Konto, für das Sie über Berechtigungen zum Auflisten von Schlüsseln verfügen
    • Ein Azure Event Hubs Namespace für die Integration in Drittanbieterlösungen

Welche Daten sind in den Microsoft Graph-Aktivitätsprotokollen verfügbar?

Informationen zu den verfügbaren Daten im Zusammenhang mit API-Anforderungen für Microsoft Graph-Aktivitätsprotokolle auf der Logs Analytics-Schnittstelle finden Sie unter Referenz zu Azure Monitor-Protokollen.

Häufige Anwendungsfälle für Microsoft Graph-Aktivitätsprotokolle

  • Erhalten Sie vollständigen Einblick in die Transaktionen von Anwendungen und anderen API-Clients, denen Sie im Mandanten zugestimmt haben.
  • Identifizieren Sie die Aktivitäten, die ein kompromittiertes Benutzerkonto in Ihrem Mandanten durchgeführt hat.
  • Erstellen Sie Erkennungen und Verhaltensanalysen, um verdächtige oder anomale Verwendung von Microsoft Graph-APIs zu identifizieren.
  • Untersuchen Sie unerwartete oder verdächtige Zuweisung privilegierter Anwendungsberechtigungen.
  • Identifizieren Sie problematisches oder unerwartetes Verhalten für Clientanwendungen, z. B. extreme Aufrufvolumen.
  • Korrelieren Sie Microsoft Graph-Anforderungen eines Benutzers oder einer App mit Anmeldeinformationen.

Konfigurieren für den Empfang der Microsoft Graph-Aktivitätsprotokolle

Sie können das Streamen der Protokolle über die Diagnoseeinstellung im Azure-Portal oder über Azure Resource Manager-APIs konfigurieren. Weitere Informationen finden Sie in den folgenden Artikeln:

In den folgenden Artikeln erfahren Sie, wie Sie die Speicherziele konfigurieren:

Kostenplanungsschätzungen

Wenn Sie bereits über eine Microsoft Entra ID P1-Lizenz verfügen, benötigen Sie ein Azure-Abonnement, um den Log Analytics-Arbeitsbereich, das Speicherkonto oder Event Hubs einzurichten. Das Azure-Abonnement ist kostenlos, aber Sie müssen für die Nutzung von Azure-Ressourcen bezahlen.

Die Menge der protokollierten Daten und somit die anfallenden Kosten können je nach Mandantengröße und den Anwendungen in Ihrem Mandanten, die mit Microsoft Graph-APIs interagieren, erheblich variieren. Die folgende Tabelle enthält einige Schätzungen für die Protokolldatengröße, um die Preisberechnung zu unterstützen. Verwenden Sie diese Schätzungen nur zu allgemeinen Überlegungen.

Benutzer im Mandanten Speicher-GiB/Monat Event Hubs-Nachrichten/Monat Azure Monitor-Protokolle (GiB/Monat)
1000 14 62K 15
100000 1000 4,8 M 1200

Sehen Sie sich die folgenden Preisberechnungen für die jeweiligen Dienste an:

Kostensenkung für Log Analytics

Wenn Sie die Protokolle in einem Log Analytics-Arbeitsbereich erfassen, aber nur an Protokollen interessiert sind, die nach einem Kriterium gefiltert wurden, z. B. das Auslassen bestimmter Spalten oder Zeilen, können Sie die Kosten teilweise senken, indem Sie eine Arbeitsbereichstransformation auf die Tabelle Microsoft Graph-Aktivitätsprotokolle anwenden. Weitere Informationen zu Arbeitsbereichstransformationen, deren Auswirkungen auf die Erfassungskosten und zum Anwenden einer Transformation auf Ihre Microsoft Graph-Aktivitätsprotokolle finden Sie unter Transformationen der Datensammlung in Azure Monitor.

Ein alternativer Ansatz zum Reduzieren der Log Analytics-Kosten besteht darin, zum Standard-Protokolldatenplan zu wechseln, der die Rechnungen senkt, indem reduzierte Funktionen bereitgestellt werden. Weitere Informationen finden Sie unter Festlegen des Protokolldatenplans einer Tabelle auf Basic oder Analytics.

Abfragebeispiele für Azure Monitor-Protokolle

Wenn Sie Microsoft Graph-Aktivitätsprotokolle an einen Log Analytics-Arbeitsbereich senden, können Sie die Protokolle mithilfe von Kusto-Abfragesprache (KQL) abfragen. Weitere Informationen zu Abfragen im Log Analytics-Arbeitsbereich finden Sie unter Analysieren Microsoft Entra Aktivitätsprotokolle mit Log Analytics. Sie können diese Abfragen zum Durchsuchen von Daten verwenden, um Warnungsregeln zu erstellen, Azure-Dashboards zu erstellen oder mit der Azure Monitor-Protokoll-API oder dem Abfrage-SDK in Ihre benutzerdefinierten Anwendungen zu integrieren.

Die folgende Kusto-Abfrage identifiziert die 20 wichtigsten Entitäten, die Anforderungen an Gruppenressourcen stellen, die aufgrund der Autorisierung fehlschlagen:

MicrosoftGraphActivityLogs
| where TimeGenerated >= ago(3d)
| where ResponseStatusCode == 401 or ResponseStatusCode == 403 
| where RequestUri contains "/groups"
| summarize UniqueRequests=count_distinct(RequestId) by AppId, ServicePrincipalId, UserId
| sort by UniqueRequests desc
| limit 20

Die folgende Kusto-Abfrage identifiziert Ressourcen, die von potenziell riskanten Benutzern abgefragt oder geändert wurden:

MicrosoftGraphActivityLogs
| where TimeGenerated > ago(30d)
| join AADRiskyUsers on $left.UserId == $right.Id
| extend resourcePath = replace_string(replace_string(replace_regex(tostring(parse_url(RequestUri).Path), @'(\/)+','/'),'v1.0/',''),'beta/','')
| summarize RequestCount=dcount(RequestId) by UserId, RiskState, resourcePath, RequestMethod, ResponseStatusCode

Mit der folgenden Kusto-Abfrage können Sie die Microsoft Graph-Aktivitätsprotokolle und Anmeldeprotokolle korrelieren. Aktivitätsprotokolle von Microsoft-Anwendungen enthalten möglicherweise nicht alle übereinstimmenden Anmeldeprotokolleinträge. Weitere Informationen finden Sie unter Bekannte Einschränkungen für Anmeldeprotokolle.

MicrosoftGraphActivityLogs
| where TimeGenerated > ago(7d)
| join kind=leftouter (union SigninLogs, AADNonInteractiveUserSignInLogs, AADServicePrincipalSignInLogs, AADManagedIdentitySignInLogs, ADFSSignInLogs
    | where TimeGenerated > ago(7d))
    on $left.SignInActivityId == $right.UniqueTokenIdentifier

Die folgende Kusto-Abfrage identifiziert Apps, die gedrosselt werden:

MicrosoftGraphActivityLogs 
| where TimeGenerated > ago(3d) 
| where ResponseStatusCode == 429 
| extend path = replace_string(replace_string(replace_regex(tostring(parse_url(RequestUri).Path), @'(\/)+','//'),'v1.0/',''),'beta/','') 
| extend UriSegments =  extract_all(@'\/([A-z2]+|\$batch)($|\/|\(|\$)',dynamic([1]),tolower(path)) 
| extend OperationResource = strcat_array(UriSegments,'/')| summarize RateLimitedCount=count() by AppId, OperationResource, RequestMethod 
| sort by RateLimitedCount desc 
| limit 100 

Mit der folgenden Abfrage können Sie ein Zeitreihendiagramm rendern:

MicrosoftGraphActivityLogs 
| where TimeGenerated  between (ago(3d) .. ago(1h))  
| summarize EventCount = count() by bin(TimeGenerated, 10m) 
| render timechart 
    with ( 
    title="Recent traffic patterns", 
    xtitle="Time", 
    ytitle="Requests", 
    legend=hidden 
    )

Begrenzungen

  • Mit dem Feature "Microsoft Graph-Aktivitätsprotokolle" können Mandantenadministratoren Protokolle für den Ressourcenmandanten sammeln. Mit diesem Feature können Sie die Aktivitäten einer mehrinstanzenfähigen Anwendung in einem anderen Mandanten nicht anzeigen.
  • Sie können Microsoft Graph-Aktivitätsprotokolle nicht über Diagnoseeinstellungen in Azure Monitor filtern. Es stehen jedoch Optionen zur Kostenreduzierung im Azure Log Analytics-Arbeitsbereich zur Verfügung. Weitere Informationen finden Sie unter Arbeitsbereichstransformation.
  • In den meisten Regionen sind die Ereignisse verfügbar und werden innerhalb von 30 Minuten an das Konfigurationsziel übermittelt. In weniger häufigen Fällen kann es bis zu 2 Stunden dauern, bis einige Ereignisse an das Ziel übermittelt werden.