Ohne Entra-Anmeldeprotokolle kommt keine Analyse rund um Identitäten aus, ganz gleich, ob es um Fehlersuche, Tests von Conditional Access oder forensische Arbeit geht. Trotzdem verlassen sich viele Tenants, die ich mir anschaue, noch immer allein auf die 30-Tage-Ansicht im Portal. Wegen der Kosten kann ich das nachvollziehen. Wird ein Vorfall aber erst spät bemerkt oder stehen Compliance-Vorgaben an, stoßen die Bordmittel schnell an ihre Grenzen. Dann läuft es fast immer auf eine Anbindung an Log Analytics hinaus, mit längerer Aufbewahrung und deutlich flexibleren Auswertungen.

Ein Diagnostic Setting leitet die Anmeldeprotokolle an Log Analytics weiter

Für eine dauerhafte Auswertung der Entra-Anmeldeprotokolle braucht ihr mindestens Entra ID P1, das in E3 und E5 meist schon enthalten ist. Eingerichtet wird das Ganze im Entra Admin Center unter Monitoring & Health → Diagnostic settings. Dort legt man pro Tenant ein Diagnostic Setting an und wählt mindestens die Kategorien SignInLogs, NonInteractiveUserSignInLogs, ServicePrincipalSignInLogs und AuditLogs aus. Welchen Log-Analytics-Workspace ihr als Ziel nehmt, ist frei wählbar; in der Regel bietet sich eine zentrale Logsammlung für Security oder Identity an.

Laufen im Tenant viele Service-Identitäten oder Automatisierungen, solltet ihr NonInteractiveUserSignInLogs und ServicePrincipalSignInLogs bewusst aktivieren. Andernfalls fehlen euch ausgerechnet bei Angriffen auf Anwendungen oder Automatisierungen wichtige Spuren. Die Einrichtung selbst ist schnell erledigt. Man sollte nur wissen, dass erst ab dem Speichern des Diagnostic Settings neue Logs weitergeleitet werden. Ältere Einträge bleiben in der Portalansicht.

{
  "category": [
    "SignInLogs",
    "NonInteractiveUserSignInLogs",
    "ServicePrincipalSignInLogs",
    "AuditLogs"
  ],
  "destination": "log-analytics",
  "retention": "365d"
}

Beispiel: JSON für die wichtigsten Kategorien im Diagnostic Setting

Non-Interactive-Logs und lange Aufbewahrung treiben die Kosten nach oben

Am stärksten schlagen beim Logging in Log Analytics meist die NonInteractiveUserSignInLogs zu Buche. In Umgebungen mit vielen automatisierten Prozessen, hybriden Identitäten oder Integrationen von Drittanbietern kommen hier schnell mehrere Millionen Einträge pro Woche zusammen. Abgerechnet wird Log Analytics nach eingehendem Datenvolumen und Aufbewahrungsdauer. Behaltet deshalb die Table Plans in Log Analytics im Blick und stellt weniger wichtige Daten gegebenenfalls auf einen Basic-Plan um (mehr zur Kostenoptimierung im Blog).

Praxistipp: Schätzt das zu erwartende Volumen ab, bevor ihr Non-Interactive-Logs in großem Umfang weiterleitet, und plant eine Testphase mit kurzer Retention ein. Zurückfahren lässt sich das später zwar, die bis dahin angefallenen Daten bleiben aber teuer.

Mit wenigen KQL-Abfragen holt man viel aus den Anmeldeprotokollen heraus

Sobald die Logs im Log-Analytics-Workspace ankommen, steht euch mit der Rolle Log Analytics Reader oder höher der komplette Funktionsumfang von KQL zur Verfügung (Microsoft Docs). Die folgenden Abfragen nutze ich im Alltag besonders oft und baue sie häufig in Security- oder Identity-Workbooks ein:

1. Legacy Authentication erkennen (ClientAppUsed):

SigninLogs
| where ClientAppUsed != "Browser" and ClientAppUsed != "Mobile Apps and Desktop clients"
| summarize Count = count() by ClientAppUsed, UserPrincipalName
| sort by Count desc

2. Fehlgeschlagene Anmeldeversuche nach Ursache (ResultType):

SigninLogs
| where ResultType != 0
| summarize Fehler = count() by ResultType, ResultDescription
| sort by Fehler desc

3. Service-Principal-Anmeldungen mit ungewöhnlichen Apps:

ServicePrincipalSignInLogs
| where AppDisplayName !in ("Microsoft Graph", "Azure CLI")
| summarize Count = count() by AppDisplayName, ServicePrincipalName
| sort by Count desc

Vor allem die erste Abfrage hilft enorm, wenn ihr prüfen wollt, ob wirklich alle Altsysteme auf moderne Authentifizierung umgestellt sind. Seit dem Ende der Basic Auth auch für SMTP AUTH haben viele Admins dieses Thema ohnehin auf dem Schirm.

Workbooks und Alerts machen Conditional-Access-Tests sichtbar

Ein Vorteil der Anbindung an Log Analytics, der oft unterschätzt wird, sind die Workbooks. Damit baut man dem Identity-Team Dashboards, die von einfachen Anmeldeübersichten über Karten mit Geolokationen bis zur Überwachung von Conditional-Access-Tests reichen. Da Conditional Access selten in einem Wurf entsteht, sondern schrittweise wächst, beobachte ich Report-only-Policies gezielt über Logs und Workbooks (hier mehr zum Testen von Conditional Access). Zusätzlich lassen sich Alerts auf bestimmte ResultTypes, ungewöhnliche Länder oder hohe Fehlerraten einrichten. Über Azure Monitor fließen diese Signale anschließend direkt ins Incident-Management und in Security-Playbooks ein.

Das folgende Diagramm zeigt, wie die einzelnen Komponenten ineinandergreifen:

flowchart TD
    EntraID["Entra ID"] --> DiagnosticSettings["Diagnostic Settings"]
    DiagnosticSettings --> LogAnalytics["Log Analytics Workspace"]
    LogAnalytics --> KQLQueries["KQL-Auswertung"]
    LogAnalytics --> Workbooks["Workbooks"]
    LogAnalytics --> Alerts["Alerts"]
    KQLQueries --> Admin["Identity/Security Admin"]

Abbildung: Weiterleitung der Entra-Anmeldeprotokolle an Log Analytics und ihre Auswertung in Workbooks und Alerts

Der Mehraufwand zahlt sich mit echter Kontrolle aus

Die Anbindung der Entra-Anmeldeprotokolle an Log Analytics kostet Zeit, und die Kosten für Non-Interactive- und Service-Principal-Logs sollte niemand auf die leichte Schulter nehmen. Meine Erfahrung ist trotzdem eindeutig: Wer seine Umgebung ernsthaft absichern oder Compliance-Anforderungen erfüllen muss, kommt um eine zentrale, durchsuchbare Protokollierung mit langer Aufbewahrung nicht herum. Beim Testen und Feinjustieren von Conditional Access, bei der Suche nach Legacy-Authentifizierung oder bei der forensischen Aufarbeitung eines Vorfalls bringen KQL, Alerting und Workbooks in Log Analytics spürbar mehr. Habt ihr das Thema bisher aus Budgetgründen liegen lassen, startet wenigstens mit passenden Table Plans und einer bewussten Auswahl der Kategorien. Den Nutzen seht ihr dann schnell im Alltag.