Microsoft Entra Gastzugriff absichern (3/3): Monitoring mit Log Analytics, KQL und Alerts
Eine neue Partnerorganisation, eine angepasste Vertrauenseinstellung oder eine Gastanmeldung an einer sensiblen Anwendung: Im laufenden Betrieb entstehen Ereignisse, die für die Sicherheit externer Zugriffe relevant sind. Ob sie den vorgesehenen Regeln entsprechen, lässt sich anhand der protokollierten Aktivitäten untersuchen.
Microsoft Entra stellt dafür Sign-in Logs und Audit Logs bereit. Die Sign-in Logs liefern Informationen zu Anmeldungen, Authentifizierung und bedingtem Zugriff. Die Audit Logs dokumentieren Änderungen innerhalb des Mandanten. Dazu gehören beispielsweise Einladungen externer Benutzer und Anpassungen an mandantenübergreifenden Zugriffseinstellungen. Microsoft beschreibt die verfügbaren Informationen unter Anmeldeprotokollaktivitätsdetails und Überwachungsprotokollaktivitäten.
Dieser Beitrag zeigt, wie diese Protokolle an Log Analytics Workspaces übertragen und mit Kusto Query Language (KQL) ausgewertet werden. Im Mittelpunkt stehen Einladungen externer Benutzer, eingehende B2B Collaboration Anmeldungen und Änderungen an mandantenübergreifenden Zugriffseinstellungen. Eine Azure Monitor Alarmregel ergänzt die Auswertung um eine aktive Benachrichtigung.
Die dreiteilige Serie Microsoft Entra Gastzugriff absichern umfasst folgende Beiträge:
- Teil 1 von 3: Mandantenübergreifende Zugriffseinstellungen und MFA-Vertrauensstellung
- Teil 2 von 3: Lebenszyklus mit Access Packages und Access Reviews steuern
- Teil 3 von 3: Monitoring mit Log Analytics, KQL und Azure Monitor
TL;DR
- Diagnoseeinstellungen übertragen Microsoft Entra Anmeldeprotokolle und Audit Logs an Log Analytics Workspaces
- KQL-Abfragen zeigen Gast Einladungen, Anmeldungen aus nicht dokumentierten Partnerorganisationen und Änderungen an Zugriffseinstellungen
- Azure Monitor Alarmregeln benachrichtigen bei ausgewählten Ereignissen
Voraussetzungen und Lizenzierung
Microsoft Entra ID
Für die Analyse der Microsoft Entra Anmelde- und Überwachungsprotokolle mit Log Analytics wird mindestens eine Microsoft Entra ID P1- oder P2-Lizenz vorausgesetzt.
Azure Abonnement und Log Analytics Workspaces
Das Azure Abonnement wird für die Bereitstellung des Log Analytics Arbeitsbereichs sowie der Azure Monitor Alarmierung benötigt.
Rollen
Für die Konfiguration eignen sich folgende Microsoft Entra- und Microsoft Azure-Rollen nach dem Prinzip der geringsten Berechtigungen:
Microsoft Entra RBAC
| Rolle | Berechtigung |
| Sicherheitsbeauftragter | Microsoft Entra Diagnoseeinstellungen konfigurieren |
Microsoft Azure RBAC
| Rolle | Berechtigung |
| Überwachungsmitwirkender | Azure Monitor Alarmregeln und Action Groups verwalten |
| Log Analytics Mitwirkender | Log Analytics Workspace erstellen und konfigurieren |
| Log Analytics Leser | Protokolldaten im Arbeitsbereich lesen und KQL-Abfragen ausführen |
Microsoft Entra Protokolle an Log Analytics Workspaces übertragen
Log Analytics Workspaces erstellen
Der Log Analytics Arbeitsbereich speichert die übertragenen Anmelde- und Überwachungsprotokolle und stellt diese für KQL-Abfragen bereit. Die Erstellung des Log Analytics Arbeitsbereichs erfolgt im Azure Portal. Falls bereits ein geeigneter Arbeitsbereich vorhanden ist, entfällt dieser Schritt.
Azure Portal (https://portal.azure.com) > Alle Dienste > Log Analytics Arbeitsbereiche > Erstellen
- Abonnement: Azure Abonnement für den Arbeitsbereich
- Ressourcengruppe: Vorhandene Ressourcengruppe auswählen oder eine neue erstellen
- Name: Name des Arbeitsbereichs, beispielsweise law-entra-monitoring
- Region: Region gemäss den Vorgaben zur Datenhaltung
Die Konfiguration mit Überprüfen + Erstellen > Erstellen abschliessen.

Diagnoseeinstellungen konfigurieren
Die Übertragung der Anmelde- und Überwachungsprotokolle an den Log Analytics Workspace wird im Microsoft Azure Portal eingerichtet
Azure Portal (https://portal.azure.com) > Microsoft Entra ID > Monitoring > Diagnoseeinstellungen > Diagnoseeinstellung hinzufügen
Name der Diagnoseeinstellung (1) eingeben, beispielsweise diag-entra-monitoring-logs.
Für das beschriebene Monitoring die Kategorien AuditLogs (2), SignInLogs (3) und NonInteractiveUserSignInLogs (4) aktivieren. Unter den Zieldetails An Log Analytics Arbeitsbereich senden (5) aktivieren. Anschliessend das Azure Abonnement (6) und den Log Analytics-Arbeitsbereich (7) auswählen.
Die Konfiguration mit Speichern (8) abschliessen.

Datenübertragung prüfen
Es kann bis zu drei Tage dauern, bis die Anmelde- und Überwachungsprotokolle im Log Analytics Workspace erscheinen. Anschliessend lässt sich die Datenübertragung im Azure Portal überprüfen.
Azure Portal (https://portal.azure.com) > Alle Dienste > Log Analytics Arbeitsbereiche > Arbeitsbereich auswählen > Protokolle
Ansicht auf KQL-Modus ändern.

Die folgenden Abfragen geben jeweils die Ereignisse der letzten 24 Stunden oder seit Beginn der Datenübertragung an den Log Analytics Workspace aus.
Benutzeranmeldungen
SigninLogs
| where TimeGenerated >= ago(24h)
| top 10 by TimeGenerated desc

nicht interaktive Benutzeranmeldungen
AADNonInteractiveUserSignInLogs
| where TimeGenerated >= ago(24h)
| top 10 by TimeGenerated desc

Überwachungsprotokoll
AuditLogs
| where TimeGenerated >= ago(24h)
| top 10 by TimeGenerated desc

Gastzugriffe mit KQL auswerten
Die folgenden KQL-Abfragen im Log Analytics Workspace decken drei konkrete Fragen ab:
- Wer lädt Gäste ein?
- Welche B2B Anmeldungen stammen aus nicht dokumentierten Partnerorganisationen?
- Wer verändert welche mandantenübergreifenden Zugriffseinstellungen?
Einladungen externer Benutzer
Microsoft Entra protokolliert Einladungen externer Benutzer als Auditaktivitäten. Die folgende Abfrage zeigt, welche Identität oder Anwendung die Einladung in den letzten 7 Tagen ausgelöst hat und an welchen externen Benutzer sie gerichtet war.
AuditLogs
| where TimeGenerated >= ago(7d)
| where OperationName in (
"Invite external user",
"Invite external user with reset invitation status"
)
| project
TimeGenerated,
OperationName,
Result,
InitiatingUser = tostring(InitiatedBy.user.userPrincipalName),
InitiatingApp = tostring(InitiatedBy.app.displayName),
TargetResources
| order by TimeGenerated desc
InitiatingUser enthält die Identität, die die Einladung ausgelöst hat. Bei einer durch eine Anwendung ausgelösten Einladung ist stattdessen InitiatingApp relevant.
TargetResources enthält das externe Benutzerobjekt, auf das sich die Einladung bezieht, sowie weitere betroffene Objekte.

Anmeldungen aus nicht dokumentierten Partnerorganisationen
Die folgende Abfrage zeigt erfolgreiche eingehende B2B Collaboration Anmeldungen aus Mandanten, welche nicht als dokumentierte Partnerorganisationen hinterlegt sind. Weitere Informationen zur Konfiguration von Partnerorganisationen sind im Artikel Microsoft Entra Gastzugriff absichern: Mandantenübergreifende Zugriffseinstellungen und MFA-Vertrauensstellung – cloudkaffee.ch nachzulesen.
Der Platzhalter KnownPartnerTenants muss durch die Mandanten-IDs der dokumentierten Partnerorganisationen ersetzt werden. Diese Liste ist nicht Bestandteil der Anmeldeprotokolle und steht der Abfrage deshalb nicht automatisch zur Verfügung. Im Beispiel sind die IDs direkt in der Abfrage hinterlegt. Bei Änderungen an den Partnerbeziehungen muss die Liste manuell angepasst werden. CrossTenantAccessType grenzt die Auswertung auf B2B Collaboration ein.
Ein einfacher, automatisierter Ansatz dafür ist bekannt? Hinweise nehme ich gerne über LinkedIn entgegen.
let KnownPartnerTenants = dynamic([
"11111111-1111-1111-1111-111111111111",
"22222222-2222-2222-2222-222222222222"
]);
union
(SigninLogs
| where TimeGenerated >= ago(7d)
| project
CreatedDateTime,
UserId,
AADTenantId,
HomeTenantId,
ResourceTenantId,
CrossTenantAccessType,
ResourceDisplayName,
SignInStatus = tostring(Status)),
(AADNonInteractiveUserSignInLogs
| where TimeGenerated >= ago(7d)
| project
CreatedDateTime,
UserId,
AADTenantId,
HomeTenantId,
ResourceTenantId,
CrossTenantAccessType,
ResourceDisplayName,
SignInStatus = tostring(Status))
| where ResourceTenantId == AADTenantId
| where HomeTenantId != ResourceTenantId
| where CrossTenantAccessType =~ "b2bCollaboration"
| where isnotempty(HomeTenantId)
| where HomeTenantId !in (KnownPartnerTenants)
| extend ErrorCode = toint(parse_json(SignInStatus).errorCode)
| where ErrorCode == 0
| summarize
LogRecords = count(),
Users = dcount(UserId),
Resources = make_set(ResourceDisplayName, 20),
LastSignIn = max(CreatedDateTime)
by HomeTenantId
| order by LastSignIn desc

Ein Treffer in dieser Abfrage zeigt eine neue Zusammenarbeit oder eine unvollständige Partnerliste an. Die Liste muss deshalb wiederkehrend gepflegt und geprüft werden.
Änderungen an mandantenübergreifenden Zugriffseinstellungen
Änderungen an mandantenübergreifenden Zugriffseinstellungen können das Sicherheitsniveau des Gastzugriffs beeinflussen, beispielsweise indem sie festlegen, welchen MFA- und Gerätenachweisen aus externen Mandanten vertraut wird.
Die folgende Abfrage zeigt die protokollierten Aktivitäten der letzten sieben Tage:
AuditLogs
| where TimeGenerated >= ago(7d)
| where Category == "CrossTenantAccessSettings"
| project
TimeGenerated,
Id,
OperationName,
Result,
InitiatingUser = tostring(InitiatedBy.user.userPrincipalName),
InitiatingApp = tostring(InitiatedBy.app.displayName),
TargetResources
| order by TimeGenerated desc

Azure Monitor Alert Rules konfigurieren
Azure Monitor Alert Rules ermöglichen eine automatische Überwachung sicherheitsrelevanter Ereignisse, ohne dass KQL-Abfragen regelmässig manuell ausgewertet werden müssen.
Aktivitäten zu mandantenübergreifenden Zugriffseinstellungen sollten überwacht werden. Die nachfolgende Beispielabfrage berücksichtigt erfolgreiche und fehlgeschlagene Ereignisse, damit auch fehlgeschlagene Änderungsversuche sichtbar werden. Erfolgreiche Änderungen können das Sicherheitsniveau des Gastzugriffs direkt beeinflussen.
Azure Portal (https://portal.azure.com) > Überwachen > Warnungen > Erstellen > Warnungsregel

Als Bereich den Log Analytics Workspace auswählen, der die Microsoft Entra Audit Logs enthält.

Unter Bedingungen den Signaltyp Benutzerdefinierte Protokollsuche auswählen und als Beispiel folgende KQL Abfrage verwenden, danach auf Bearbeitung der Warnung fortsetzen klicken.
AuditLogs
| where Category == "CrossTenantAccessSettings"

Als Messwert Tabellenzeilen auswählen und das Überprüfungsintervall unter Aggregationsgranularität angeben.

Unter Aktionen kann eine schnelle Aktion direkt in der Warnungsregel konfiguriert oder eine vorhandene beziehungsweise neue Aktionsgruppe verwendet werden. Schnelle Aktionen ermöglichen beispielsweise eine Mail Benachrichtigung, während Aktionsgruppen wiederverwendbare Benachrichtigungen und weiterführende Automatisierungen bereitstellen.

Unter Details den Namen und Schweregrad der Warnungsregel festlegen und die Konfiguration mit Überprüfen + erstellen abschliessen.

Die vollständige Konfiguration von Protokollsuchwarnungen ist im Microsoft Learn Artikel Erstellen von Regel für Protokollsuchwarnungen für Azure Monitor – Azure Monitor | Microsoft Learn beschrieben.
Weitere Warnungen können nach eigenen Interessen und Möglichkeiten erstellt werden.
M365Con Session
Die Inhalte dieser Artikelserie basieren auf meiner Session zum Thema Microsoft Entra Gastzugriff an der M365Con. Die vollständige Session mit den behandelten Konzepten, Konfigurationsbeispielen sowie weiteren Themen rund um Conditional Access und Monitoring ist auf YouTube verfügbar.
Fazit
Microsoft Entra Gastzugriff benötigt neben Trust, Zugriffskontrolle und Lifecycle Governance auch eine Monitoring Ebene. Anmeldeprotokolle zeigen, welche externen Identitäten auf Ressourcen zugreifen. Audit Logs dokumentieren Einladungen und Änderungen an sicherheitsrelevanten Einstellungen. Diagnostic Settings übertragen diese Daten für Analysen an Log Analytics Workspaces.
KQL macht aus den gesammelten Protokollen wiederholbare Kontrollen. Damit lassen sich unter anderem Zugriffe aus unbekannten Partnerorganisationen, Gast Einladungen und Änderungen an mandantenübergreifenden Zugriffseinstellungen nachvollziehen. Azure Monitor Alert Rules ergänzen diese Auswertungen um eine aktive Benachrichtigung bei Ereignissen, die nicht erst bei einer manuellen Kontrolle auffallen dürfen.
Der in diesem Beitrag beschriebene Ansatz bildet eine einfache Grundlage für das Monitoring von Microsoft Entra Gastzugriff. Je nach Anforderungen kann dieser mit Microsoft Sentinel oder anderen zentralen Security Monitoring Lösungen erweitert und professionalisiert werden.
Sicherheit endet nicht mit der Konfiguration. Erst das Monitoring zeigt, ob die vorgesehenen Regeln im Betrieb tatsächlich wirken.