Microsoft Entra ID-Anmeldeprotokolle (früher Azure Active Directory) erfassen

Parserversion:26.0

Unterstützt in:

In diesem Dokument wird beschrieben, wie Sie Anmeldelogs für Microsoft Entra ID (früher Azure Active Directory) erfassen, indem Sie einen Google Security Operations-Feed einrichten. Sie können die Aufnahme mit zwei Methoden konfigurieren: Azure Event Hub (empfohlen) oder die Drittanbieter-API.

Hinweis

Folgende Voraussetzungen müssen erfüllt sein:

  • Google SecOps-Instanz.
  • Privilegierter Zugriff auf das Microsoft Azure-Portal.
  • Rolle „Sicherheitsadministrator“ oder „Globaler Administrator“ in Microsoft Entra ID (für Diagnoseeinstellungen erforderlich).
  • Für die Drittanbieter-API-Methode ist eine der folgenden Rollen zum Erteilen der Administratoreinwilligung erforderlich:
    • Globaler Administrator: Kann die Einwilligung für jede Berechtigung und jede API erteilen.
    • Administrator mit privilegierten Rollen: kann die Einwilligung für jede Berechtigung und jede API erteilen.
    • Cloud Application Administrator: Kann die Einwilligung für jede Berechtigung für jede API erteilen, mit Ausnahme von Microsoft Graph-App-Rollen (Anwendungsberechtigungen).

Bei dieser Methode werden Microsoft Entra ID-Anmeldeprotokolle über Azure Event Hub mithilfe von Diagnoseeinstellungen gestreamt. Google SecOps erfasst die Protokolle direkt aus dem Event Hub über den Azure Event Hub-Feedtyp.

Event Hubs-Namespace erstellen

Ein Event Hubs-Namespace ist ein Verwaltungscontainer für einen oder mehrere Event Hubs.

  1. Suchen Sie im Azure-Portal nach Event Hubs.
  2. Klicken Sie auf + Erstellen.
  3. Geben Sie die folgenden Konfigurationsdetails an:

    Einstellung Wert
    Abo Azure-Abo auswählen
    Ressourcengruppe Vorhandene auswählen oder neue erstellen
    Name des Namespace Geben Sie einen eindeutigen Namen ein, z. B. secops-entraid-signin.
    Standort Wählen Sie die Region aus, die Ihrem Microsoft Entra-Mandanten am nächsten ist.
    Preisstufe Standard (für die Produktion empfohlen)
    Durchsatzeinheiten Mit 1 beginnen und „Automatisch aufblasen“ aktivieren (empfohlen)
  4. Klicken Sie auf Überprüfen + Erstellen.

  5. Sehen Sie sich die Übersicht an und klicken Sie auf Erstellen.

  6. Warten Sie, bis die Bereitstellung abgeschlossen ist (1–2 Minuten).

Event Hub erstellen

  1. Rufen Sie nach der Bereitstellung des Namespaces den Event Hubs-Namespace auf.
  2. Wählen Sie im linken Navigationsbereich unter Entitäten die Option Event Hubs aus.
  3. Klicken Sie auf + Event Hub.
  4. Geben Sie die folgenden Konfigurationsdetails an:

    Einstellung Wert
    Name Geben Sie einen eindeutigen Namen ein, z. B. entraid-signin-logs.
    Anzahl der Partitionen 40 (empfohlen für optimale Google SecOps-Skalierung)
    Nachrichtenaufbewahrung 7 Tage (empfohlenes Minimum)
    Aufnehmen Deaktiviert (nicht für Google SecOps erforderlich)
  5. Klicken Sie auf Erstellen.

Event Hub-Verbindungsstring abrufen

Für Google SecOps ist ein Verbindungsstring erforderlich, um sich beim Event Hub zu authentifizieren.

  1. Rufen Sie den Event Hubs-Namespace auf.
  2. Wählen Sie im linken Navigationsbereich unter Einstellungen die Option Richtlinien für gemeinsamen Zugriff aus.
  3. Klicken Sie auf die Standardrichtlinie RootManageSharedAccessKey.
  4. Kopieren Sie den Verbindungsstring – Primärschlüssel.
  5. Speichern Sie diese Verbindungszeichenfolge sicher.
  • Beispiel:

    Original: Endpoint=sb://secops-entraid-signin.servicebus.windows.net/;SharedAccessKeyName=RootManageSharedAccessKey;SharedAccessKey=abc123==;EntityPath=entraid-signin-logs
    
    Remove EntityPath: Endpoint=sb://secops-entraid-signin.servicebus.windows.net/;SharedAccessKeyName=RootManageSharedAccessKey;SharedAccessKey=abc123==
    

Option B: Verbindungszeichenfolge auf Event Hub-Ebene

  1. Rufen Sie den Event Hub (nicht den Namespace) auf.
  2. Wählen Sie im linken Navigationsbereich unter Einstellungen die Option Richtlinien für gemeinsamen Zugriff aus.
  3. Klicken Sie auf + Hinzufügen, um eine neue Richtlinie zu erstellen.
  4. Geben Sie die folgenden Konfigurationsdetails an:
    • Richtlinienname: Geben Sie einen aussagekräftigen Namen ein, z. B. chronicle-read.
    • Berechtigungen: Wählen Sie Nur hören (Lesezugriff) aus.
  5. Klicken Sie auf Erstellen.
  6. Klicken Sie auf die neu erstellte Richtlinie.
  7. Kopieren Sie den Verbindungsstring – Primärschlüssel.
  8. Speichern Sie diese Verbindungszeichenfolge sicher.

Diagnoseeinstellungen für Microsoft Entra ID konfigurieren

  1. Melden Sie sich im Microsoft Entra Admin Center als mindestens Sicherheitsadministrator an.
  2. Rufen Sie Entra ID> „Monitoring & health“ (Überwachung und Integrität) > „Diagnostic settings“ (Diagnoseeinstellungen) auf.
  3. Klicken Sie auf + Diagnoseeinstellung hinzufügen.
  4. Geben Sie die folgenden Konfigurationsdetails an:
    • Name der Diagnoseeinstellung: Geben Sie einen aussagekräftigen Namen ein, z. B. signin-logs-to-eventhub.
    • Wählen Sie im Abschnitt Logs die Anmeldelogkategorien aus, die Sie exportieren möchten:
      • SignInLogs: Interaktive Nutzeranmeldungen.
      • NonInteractiveUserSignInLogs: Anmeldungen nicht interaktiver Nutzer (empfohlen).
      • ServicePrincipalSignInLogs: Anmeldungen von Diensthauptkonten (optional).
      • ManagedIdentitySignInLogs: Anmeldungen mit verwalteter Identität (optional).
      • ADFSSignInLogs: AD FS-Anmeldeprotokolle (optional, wenn AD FS verwendet wird).
      • RiskyUsers: Nutzer, die von Microsoft Entra ID Protection als riskant eingestuft wurden (optional).
      • UserRiskEvents: Details zu riskanten Anmeldeereignissen (optional).
    • Wählen Sie im Abschnitt Zieldetails die Option In einen Event Hub streamen aus.
    • Abo: Wählen Sie das Abo aus, das Ihren Event Hub-Namespace enthält.
    • Event Hubs-Namespace: Wählen Sie den von Ihnen erstellten Namespace aus (z. B. secops-entraid-signin).
    • Event Hub-Name: Wählen Sie den erstellten Event Hub aus (z. B. entraid-signin-logs).
    • Event Hub-Richtlinienname: Wählen Sie RootManageSharedAccessKey aus.
  5. Klicken Sie auf Speichern.

(Optional) Azure Blob Storage für Checkpointing konfigurieren

Google SecOps kann Azure Blob Storage verwenden, um Event Hub-Prüfpunkte zu speichern, mit denen nachverfolgt wird, welche Ereignisse verarbeitet wurden. So wird verhindert, dass Daten doppelt erfasst werden, wenn der Feed vorübergehend unterbrochen wird.

Storage-Konto für Checkpointing erstellen

  1. Suchen Sie im Azure-Portal nach Speicherkonten.
  2. Klicken Sie auf + Erstellen.
  3. Geben Sie die folgenden Konfigurationsdetails an:

    Einstellung Wert
    Abo Azure-Abo auswählen
    Ressourcengruppe Dieselbe Ressourcengruppe wie Event Hub verwenden
    Name des Speicherkontos Geben Sie einen eindeutigen Namen ein, z. B. secopsaadsignin.
    Region Dieselbe Region wie Event Hub
    Leistung Standard
    Redundanz LRS (Lokal redundanter Speicher)
  4. Klicken Sie auf Überprüfen + Erstellen.

  5. Klicken Sie auf Erstellen.

Blob-Container erstellen

  1. Rufen Sie das von Ihnen erstellte Speicherkonto auf.
  2. Wählen Sie in der linken Navigationsleiste unter Datenspeicher die Option Container aus.
  3. Klicken Sie auf + Container.
  4. Geben Sie die folgenden Konfigurationsdetails an:
    • Name: Geben Sie checkpoints ein.
    • Öffentliche Zugriffsebene: Privat (kein anonymer Zugriff)
  5. Klicken Sie auf Erstellen.

Anmeldedaten für das Speicherkonto abrufen

  1. Wählen Sie im Speicherkonto unter Sicherheit + Netzwerk die Option Zugriffsschlüssel aus.
  2. Klicken Sie auf Schlüssel anzeigen.
  3. Kopieren und speichern:
    • Storage-Kontoname: Der Name Ihres Storage-Kontos.
    • Schlüssel 1: Der Wert des Zugriffsschlüssels.

Optional: Eigene Verbrauchergruppe erstellen

Standardmäßig stellt Event Hub eine Consumergruppe mit dem Namen $Default bereit. Für Produktionsumgebungen wird empfohlen, eine eigene Consumer-Gruppe für Google SecOps zu erstellen.

  1. Rufen Sie den Event Hub (nicht den Namespace) auf.
  2. Wählen Sie im linken Navigationsbereich unter Entitäten die Option Verbrauchergruppen aus.
  3. Klicken Sie auf + Verbrauchergruppe.
  4. Geben Sie die folgenden Konfigurationsdetails an:
    • Name: Geben Sie einen aussagekräftigen Namen ein, z. B. chronicle.
  5. Klicken Sie auf Erstellen.

Feed in Google SecOps konfigurieren, um Anmeldelogs von Microsoft Entra ID aufzunehmen

  1. Rufen Sie die SIEM-Einstellungen > Feeds auf.
  2. Klicken Sie auf Neuen Feed hinzufügen.
  3. Klicken Sie auf der nächsten Seite auf Einen einzelnen Feed konfigurieren.
  4. Geben Sie im Feld Feedname einen Namen für den Feed ein, z. B. Microsoft Entra ID Sign-In Logs - Event Hub.
  5. Wählen Sie Microsoft Azure Event Hub als Quelltyp aus.
  6. Wählen Sie Microsoft Azure AD als Log type (Logtyp) aus.
  7. Klicken Sie auf Weiter.
  8. Geben Sie Werte für die folgenden Eingabeparameter an:

    • Event Hub-Verbindungsstring: Geben Sie den Event Hub-Verbindungsstring ein, den Sie zuvor erfasst haben.

    Bei Verwendung eines Verbindungs-Strings auf Namespace-Ebene:

    • Achten Sie darauf, dass Sie den Parameter EntityPath entfernt haben.
    • Geben Sie im nächsten Feld auch den Event Hub-Namen an.

    Bei Verwendung einer Verbindungszeichenfolge auf Event Hub-Ebene:

    • Verwenden Sie den Verbindungsstring unverändert (einschließlich EntityPath).
    • Das Feld Event Hub-Name kann leer gelassen werden.

      • Name des Event Hubs: Geben Sie den Namen des Event Hubs ein, z. B. entraid-signin-logs.

      Erforderlich, wenn ein Verbindungsstring auf Namespace-Ebene verwendet wird. Optional, wenn eine Verbindungszeichenfolge auf Event Hub-Ebene verwendet wird.

    • Consumer-Gruppe (optional): Geben Sie den Namen der Consumer-Gruppe ein.

    • Lassen Sie das Feld leer, um die Standardnutzergruppe $Default zu verwenden.

    • Wenn Sie eine spezielle Gruppe mit einem Privatnutzerkonto erstellt haben, geben Sie deren Namen ein, z. B. chronicle.

    • Name des Blob-Speichercontainers (optional): Geben Sie für das Checkpointing den Containernamen ein, z. B. checkpoints.

    Wenn Sie Blob-Speicher für die Prüfpunkterstellung bereitstellen:

    • Name des Azure-Speicherkontos: Geben Sie den Namen des Speicherkontos aus der Checkpointing-Konfiguration ein.
    • Azure-Speicherkontoschlüssel: Geben Sie den Zugriffsschlüssel aus der Checkpointing-Konfiguration ein.

    • Asset-Namespace: Der Asset-Namespace.

    • Aufnahmelabels: Das Label, das auf die Ereignisse aus diesem Feed angewendet werden soll.

  9. Klicken Sie auf Weiter.

  10. Prüfen Sie die neue Feedkonfiguration auf dem Bildschirm Abschließen und klicken Sie dann auf Senden.

Methode 2: Drittanbieter-API

Bei dieser Methode werden die Microsoft Entra ID-Anmeldeprotokolle direkt von Ihrem Microsoft-Mandanten abgerufen.

IP-Zulassungsliste konfigurieren

Bevor Sie den Feed erstellen, müssen Sie die Google SecOps-IP-Bereiche in Ihren Microsoft Azure-Netzwerkeinstellungen oder Richtlinien für bedingten Zugriff auf die Zulassungsliste setzen.

Google SecOps-IP-Bereiche abrufen

  1. Rufen Sie die SIEM-Einstellungen > Feeds auf.
  2. Klicken Sie auf Neuen Feed hinzufügen.
  3. Notieren Sie sich die IP-Bereiche, die auf der Benutzeroberfläche zur Feederstellung angezeigt werden.
  4. Alternativ können Sie IP-Adressbereiche programmatisch über die Feed Management API abrufen.

Bedingten Zugriff für Arbeitslastidentitäten konfigurieren (falls erforderlich)

Wenn Ihre Organisation Richtlinien für bedingten Zugriff verwendet, die den Zugriff nach Standort einschränken:

  1. Gehen Sie im Microsoft Entra Admin Center zu Schutz > Bedingter Zugriff > Benannte Standorte.
  2. Klicken Sie auf + Neuer Standort.
  3. Geben Sie die folgenden Konfigurationsdetails an:
    • Name: Geben Sie Google SecOps IP Ranges ein.
    • Als vertrauenswürdigen Standort markieren: Optional, je nach Ihrer Sicherheitsrichtlinie.
    • IP-Bereiche: Fügen Sie jeden Google SecOps-IP-Bereich in CIDR-Notation hinzu.
  4. Klicken Sie auf Erstellen.
  5. Rufen Sie Conditional Access > Policies (Bedingter Zugriff > Richtlinien) auf.
  6. Konfigurieren Sie für alle Richtlinien, die für Workload-Identitäten gelten, einen Ausschluss für den benannten Standort Google SecOps IP Ranges oder den spezifischen Dienstprinzipal.

API-Zugriff für Microsoft Entra ID konfigurieren

App-Registrierung erstellen

  1. Melden Sie sich im Microsoft Entra Admin Center oder im Azure-Portal an.
  2. Rufen Sie Identität > Anwendungen > Anwendungsregistrierungen auf.
  3. Klicken Sie auf Neue Registrierung.
  4. Geben Sie die folgenden Konfigurationsdetails an:

    • Name: Geben Sie einen aussagekräftigen Namen ein, z. B. Google SecOps Sign-In Logs Integration.
    • Unterstützte Kontotypen: Wählen Sie Nur Konten in diesem Organisationsverzeichnis (Einzelmandant) aus.
    • Redirect URI (Weiterleitungs-URI): Lassen Sie das Feld leer (nicht für die Authentifizierung des Dienstprinzipals erforderlich).
  5. Klicken Sie auf Registrieren.

  6. Kopieren und speichern Sie nach der Registrierung die folgenden Werte:

    • Anwendungs-ID (Client-ID)
    • Verzeichnis-ID (Mandant)

API-Berechtigungen konfigurieren

Für die Integration sind die folgenden Microsoft Graph-Anwendungsberechtigungen erforderlich:

  1. Rufen Sie in der App-Registrierung API-Berechtigungen auf.
  2. Klicken Sie auf Berechtigung hinzufügen.
  3. Wählen Sie Microsoft Graph > Anwendungsberechtigungen aus.
  4. Wählen Sie die folgenden Berechtigungen aus:
    • AuditLog.Read.All: Erforderlich, um Anmeldeprotokolle zu lesen.
    • Directory.Read.All: Erforderlich für den Zugriff auf Anmeldeprotokolle über die Microsoft Graph API (bekanntes Problem).
    • SecurityEvents.Read.All: Erforderlich für Google Security Operations.
  5. Klicken Sie auf Berechtigungen hinzufügen.
  6. Klicken Sie auf Administratoreinwilligung für [Ihre Organisation]erteilen.
  7. Prüfen Sie, ob in der Spalte Status für alle drei Berechtigungen Gewährt für [Ihre Organisation] angezeigt wird.
Berechtigung Typ Beschreibung
AuditLog.Read.All Anwendung Alle Anmelde- und Audit-Log-Daten lesen
Directory.Read.All Anwendung Verzeichnisdaten lesen (für API-Zugriff erforderlich)
SecurityEvents.Read.All Anwendung Sicherheitshinweise lesen

Clientschlüssel erstellen

  1. Rufen Sie Zertifikate und Secrets auf.
  2. Klicken Sie auf Neuer geheimer Clientschlüssel.
  3. Geben Sie die folgenden Konfigurationsdetails an:

    • Beschreibung: Geben Sie einen aussagekräftigen Namen ein, z. B. Google SecOps Feed.
    • Läuft ab: Wählen Sie einen Ablaufzeitraum aus.
  4. Klicken Sie auf Hinzufügen.

  5. Wichtig: Kopieren Sie den Wert des Clientschlüssels sofort. Dieser Wert wird nur einmal angezeigt und kann später nicht mehr abgerufen werden.

API-Zugriff vor dem Erstellen des Feeds prüfen

Bevor Sie den Google SecOps-Feed erstellen, prüfen Sie, ob sich der Dienstprinzipal erfolgreich authentifizieren und auf die Microsoft Graph API zugreifen kann.

  • Authentifizierung mit PowerShell testen

    # Replace with your actual values
    $tenantId = "your-tenant-id"
    $clientId = "your-client-id"
    $clientSecret = "your-client-secret"
    
    # Token request parameters (must be lowercase)
    $tokenBody = @{
        grant_type    = "client_credentials"
        client_id     = $clientId
        client_secret = $clientSecret
        scope         = "https://graph.microsoft.com/.default"
    }
    
    # Request access token
    $tokenEndpoint = "https://login.microsoftonline.com/$tenantId/oauth2/v2.0/token"
    $tokenResponse = Invoke-RestMethod -Method Post -Uri $tokenEndpoint -Body $tokenBody -ContentType "application/x-www-form-urlencoded"
    
    if ($tokenResponse.access_token) {
        Write-Host "✓ Successfully obtained access token" -ForegroundColor Green
    
        # Test API call to sign-ins endpoint
        $apiUrl = "https://graph.microsoft.com/v1.0/auditLogs/signIns?`$top=1"
        $headers = @{
            Authorization = "Bearer $($tokenResponse.access_token)"
        }
    
        try {
            $signInResponse = Invoke-RestMethod -Method Get -Uri $apiUrl -Headers $headers
            Write-Host "✓ Successfully accessed sign-ins API" -ForegroundColor Green
            Write-Host "Sample sign-in log retrieved successfully" -ForegroundColor Green
        }
        catch {
            Write-Host "✗ Failed to access sign-ins API" -ForegroundColor Red
            Write-Host "Error: $($_.Exception.Message)" -ForegroundColor Red
        }
    }
    else {
        Write-Host "✗ Failed to obtain access token" -ForegroundColor Red
    }
    
    • Erwartete Ausgabe:

      ✓ Successfully obtained access token
      ✓ Successfully accessed sign-ins API
      Sample sign-in log retrieved successfully
      
  • Authentifizierung mit „curl“ testen

    # Replace with your actual values
    TENANT_ID="your-tenant-id"
    CLIENT_ID="your-client-id"
    CLIENT_SECRET="your-client-secret"
    
    # Request access token
    curl -X POST "https://login.microsoftonline.com/$TENANT_ID/oauth2/v2.0/token" \
    -H "Content-Type: application/x-www-form-urlencoded" \
    -d "grant_type=client_credentials" \
    -d "client_id=$CLIENT_ID" \
    -d "client_secret=$CLIENT_SECRET" \
    -d "scope=https://graph.microsoft.com/.default"
    
    # Test API access
    curl -H "Authorization: Bearer YOUR_ACCESS_TOKEN" \
    "https://graph.microsoft.com/v1.0/auditLogs/signIns?\$top=1"
    

Feed in Google SecOps konfigurieren, um Anmeldelogs von Microsoft Entra ID aufzunehmen

Feed einrichten

  1. Rufen Sie die SIEM-Einstellungen > Feeds auf.
  2. Klicken Sie auf Neuen Feed hinzufügen.
  3. Klicken Sie auf der nächsten Seite auf Einen einzelnen Feed konfigurieren.
  4. Geben Sie im Feld Feedname einen Namen für den Feed ein, z. B. Microsoft Entra ID Sign-In Logs.
  5. Wählen Sie Drittanbieter-API als Quelltyp aus.
  6. Wählen Sie Microsoft Azure AD als Log type (Logtyp) aus.
  7. Klicken Sie auf Weiter.

Feedparameter konfigurieren

Geben Sie Werte für die folgenden Eingabeparameter an:

  • OAuth-Client-ID: Die Anwendungs- oder Client-ID aus der App-Registrierung.
  • OAuth-Clientschlüssel: Der Wert des Clientschlüssels, den Sie zuvor kopiert haben.
  • Mandanten-ID: Ihre Microsoft-Mandanten-ID aus der App-Registrierung (UUID-Format, z. B. 0fc279f9-fe30-41be-97d3-abe1d7681418).
  • Vollständiger API-Pfad: Microsoft Graph REST API-Endpunkt-URL:

    graph.microsoft.com/v1.0/auditLogs/signIns
    
  • API-Authentifizierungsendpunkt: Microsoft Active Directory-Authentifizierungsendpunkt:

    login.microsoftonline.com
    
  • Erweiterte Optionen:

    • Feedname: Ein vorausgefüllter Wert, der den Feed identifiziert.
    • Quelltyp: Drittanbieter-API (Mechanismus zum Erfassen der Logs in Google SecOps).
    • Asset-Namespace: Der Asset-Namespace, mit dem der Feed verknüpft wird.
    • Aufnahmelabels: Alle Ereignisse aus diesem Feed werden mit Labels versehen.
  1. Klicken Sie auf Weiter.
  2. Prüfen Sie die neue Feedkonfiguration auf dem Bildschirm Abschließen und klicken Sie dann auf Senden.

Regionale Endpunkte

Verwenden Sie für Microsoft Entra ID-Bereitstellungen in Sovereign Clouds die entsprechenden regionalen Endpunkte:

Cloud-Umgebungen Vollständiger API-Pfad API-Authentifizierungsendpunkt
Global graph.microsoft.com/v1.0/auditLogs/signIns login.microsoftonline.com
US Government L4 graph.microsoft.us/v1.0/auditLogs/signIns login.microsoftonline.us
US Government L5 (DOD) dod-graph.microsoft.us/v1.0/auditLogs/signIns login.microsoftonline.us
China (21Vianet) microsoftgraph.chinacloudapi.cn/v1.0/auditLogs/signIns login.chinacloudapi.cn

UDM-Zuordnungstabelle

Logfeld UDM-Zuordnung Logik
activityDateTime principal.event_timestamp Aus dem Feld activityDateTime geparst. Wenn das Feld nicht im erwarteten Format „JJJJ-MM-TTTHH:mm:ss.SSSZ“ oder „ISO8601“ vorliegt, versucht der Parser andere Formate wie „MM/TT/JJJJ HH:mm:ss A“ oder „MM/T/JJJJ HH:mm:ss A“.
activityDisplayName security_result.summary Direkt aus activityDisplayName übernommen.
additionalDetails.0.value network.http.user_agent Direkt aus additionalDetails.0.value übernommen.
additionalDetails.1.key target.resource.attribute.labels.key Direkt aus additionalDetails.1.key übernommen.
additionalDetails.1.value target.resource.attribute.labels.value Direkt aus additionalDetails.1.value übernommen.
additionalInfo.[].Key network.http.user_agent, target.url Wenn Key userAgent ist, ordnen Sie Value network.http.user_agent und network.http.parsed_user_agent zu. Wenn Key alertUrl ist, ordnen Sie Value target.url zu.
additionalInfo.[].Value network.http.user_agent, target.url Wenn Key userAgent ist, ordnen Sie Value network.http.user_agent und network.http.parsed_user_agent zu. Wenn Key alertUrl ist, ordnen Sie Value target.url zu.
am_category metadata.description Direkt aus am_category übernommen.
am_tenantId metadata.product_deployment_id Direkt aus am_tenantId übernommen.
appId target.resource.attribute.labels.value Direkt aus appId zugeordnet, wobei der Labelschlüssel „App-ID“ ist.
appDisplayName target.application Direkt aus appDisplayName übernommen.
appliedConditionalAccessPolicies.[].displayName security_result.[].rule_name, about.[].user.user_display_name Direkt aus appliedConditionalAccessPolicies.[].displayName übernommen.
appliedConditionalAccessPolicies.[].enforcedGrantControls security_result.[].rule_labels.value Direkt aus appliedConditionalAccessPolicies.[].enforcedGrantControls zugeordnet mit dem Label-Schlüssel „applied_conditional_access_policies_enforced_grant_controls“.
appliedConditionalAccessPolicies.[].enforcedSessionControls security_result.[].rule_labels.value Direkt aus appliedConditionalAccessPolicies.[].enforcedSessionControls zugeordnet mit dem Label-Schlüssel „applied_conditional_access_policies_enforced_session_controls“.
appliedConditionalAccessPolicies.[].id security_result.[].rule_id, about.[].user.userid Direkt aus appliedConditionalAccessPolicies.[].id übernommen.
appliedConditionalAccessPolicies.[].result security_result.[].detection_fields.value, about.[].labels.value Direkt aus appliedConditionalAccessPolicies.[].result zugeordnet mit dem Label-Schlüssel „Result“.
authenticationDetails.[].authenticationMethod security_result.[].detection_fields.value Direkt zugeordnet von authenticationDetails.[].authenticationMethod mit dem Label-Schlüssel „authenticationMethod“.
authenticationDetails.[].authenticationMethodDetail security_result.[].detection_fields.value Direkt aus authenticationDetails.[].authenticationMethodDetail zugeordnet mit dem Labelschlüssel „authenticationMethodDetail“.
authenticationDetails.[].authenticationStepDateTime security_result.[].detection_fields.value Direkt aus authenticationDetails.[].authenticationStepDateTime zugeordnet, mit dem Label-Schlüssel „authenticationStepDateTime“.
authenticationDetails.[].authenticationStepRequirement security_result.[].detection_fields.value Direkt aus authenticationDetails.[].authenticationStepRequirement zugeordnet mit dem Label-Schlüssel „authenticationStepRequirement“.
authenticationDetails.[].authenticationStepResultDetail security_result.[].detection_fields.value Direkt aus authenticationDetails.[].authenticationStepResultDetail zugeordnet mit dem Label-Schlüssel „authenticationStepResultDetail“.
authenticationDetails.[].succeeded security_result.action Wenn der Wert „true“ ist, dann ALLOW, andernfalls BLOCK.
authenticationRequirement additional.fields.value.string_value Direkt aus authenticationRequirement zugeordnet mit dem Label-Schlüssel „AuthenticationRequirement“.
authenticationRequirementPolicies.[].detail security_result.detection_fields.value Direkt zugeordnet aus authenticationRequirementPolicies.[].detail mit dem Labelschlüssel „detail“.
authenticationRequirementPolicies.[].requirementProvider security_result.detection_fields.value Direkt aus authenticationRequirementPolicies.[].requirementProvider zugeordnet mit dem Label-Schlüssel „requirementProvider“.
callerIpAddress principal.ip, principal.asset.ip Direkt aus callerIpAddress übernommen.
category metadata.description Direkt aus category übernommen.
clientAppUsed principal.application Direkt aus clientAppUsed übernommen.
conditionalAccessStatus additional.fields.value.string_value Direkt zugeordnet aus conditionalAccessStatus mit dem Label-Schlüssel „conditionalAccessStatus“.
correlationId network.session_id, security_result.detection_fields.value Direkt aus correlationId übernommen. Wird auch als security_result.detection_fields.value mit dem Label-Schlüssel „CorrelationId“ verwendet.
createdDateTime when Das Feld when wird aus dem Feld createdDateTime abgeleitet. Datum und Uhrzeit werden mit „grok“ aus dem Feld createdDateTime extrahiert und dann zum Feld when kombiniert.
deviceDetail.browser network.http.user_agent Direkt aus deviceDetail.browser übernommen.
deviceDetail.deviceId principal.asset.asset_id, principal.asset_id Direkt aus deviceDetail.deviceId zugeordnet und mit „Geräte-ID:“ versehen.
deviceDetail.displayName principal.asset.hostname Direkt aus deviceDetail.displayName übernommen.
deviceDetail.isCompliant principal.asset.attribute.labels.value Direkt aus deviceDetail.isCompliant zugeordnet, mit dem Label-Schlüssel „isCompliant“.
deviceDetail.isManaged principal.asset.attribute.labels.value Direkt zugeordnet aus deviceDetail.isManaged mit dem Label-Schlüssel „isManaged“.
deviceDetail.operatingSystem principal.platform_version Direkt aus deviceDetail.operatingSystem übernommen.
deviceDetail.trustType principal.asset.attribute.labels.value Direkt aus deviceDetail.trustType zugeordnet mit dem Label-Schlüssel „trustType“.
durationMs additional.fields.value.string_value Direkt aus durationMs zugeordnet, mit dem Label-Schlüssel „durationMs“.
event.id - Nicht gemäß Anleitung (Punkt 3) zugeordnet.
id metadata.product_log_id Direkt aus id übernommen.
identity target.user.user_display_name Direkt aus identity übernommen, wenn sie sich von userId unterscheidet und keine E-Mail-Adresse ist.
initiatedBy.user.displayName principal.user.user_display_name Direkt aus initiatedBy.user.displayName übernommen.
initiatedBy.user.id principal.user.userid, principal.user.windows_sid Direkt aus initiatedBy.user.id übernommen.
initiatedBy.user.ipAddress principal.ip, principal.asset.ip Direkt aus initiatedBy.user.ipAddress übernommen.
initiatedBy.user.userPrincipalName principal.user.email_addresses, principal.user.userid Direkt aus initiatedBy.user.userPrincipalName übernommen. Wenn es sich um eine E-Mail-Adresse handelt, wird sie email_addresses zugeordnet, andernfalls userid.
Level security_result.severity_details, level Direkt aus Level übernommen.
level security_result.severity_details, security_result.severity Direkt aus level übernommen. Wird nach der Umwandlung in Großbuchstaben auch security_result.severity zugeordnet. Sonderbehandlung für die Werte „Information“, „Informational“, „0“, „4“, „Warning“, „1“, „3“, „Error“, „2“ und „Critical“.
location.city principal.location.city Direkt aus location.city übernommen.
location.countryOrRegion principal.location.country_or_region Direkt aus location.countryOrRegion übernommen.
location.geoCoordinates.altitude additional.fields.value.string_value Direkt aus location.geoCoordinates.altitude zugeordnet mit dem Labelschlüssel „location_geoCoordinates_altitude“.
location.geoCoordinates.latitude principal.location.region_latitude, principal.location.region_coordinates.latitude Direkt aus location.geoCoordinates.latitude übernommen.
location.geoCoordinates.longitude principal.location.region_longitude, principal.location.region_coordinates.longitude Direkt aus location.geoCoordinates.longitude übernommen.
location.state principal.location.state Direkt aus location.state übernommen.
location principal.location.name Direkt aus location übernommen.
log_type metadata.log_type Direkt aus log_type übernommen.
networkLocationDetails.[].networkNames additional.fields.value.string_value Verkettete Werte aus networkLocationDetails.[].networkNames mit dem Labelschlüssel „networkName {index}“.
networkLocationDetails.[].networkType security_result.detection_fields.value, additional.fields.value.string_value Direkt aus networkLocationDetails.[].networkType zugeordnet mit dem Label-Schlüssel „networkType“. Wird auch als additional.fields.value.string_value mit dem Label-Schlüssel „networkType {index}“ verwendet.
operationName event_type Wenn operationName „Anmeldeaktivitäten“ ist, dann USER_LOGIN. Wenn operationName „Mitglied zur Gruppe hinzufügen“ ist, dann USER_CHANGE_PERMISSIONS.
operationType security_result.action_details Direkt aus operationType übernommen.
properties.activity security_result.summary Direkt aus properties.activity übernommen.
properties.activityDateTime when Aus dem Feld properties.activityDateTime geparst. Wenn das Feld nicht im erwarteten Format „JJJJ-MM-TTTHH:mm:ss.SSSZ“ oder „ISO8601“ vorliegt, versucht der Parser andere Formate wie „MM/TT/JJJJ HH:mm:ss A“ oder „MM/T/JJJJ HH:mm:ss A“.
properties.activityDisplayName security_result.summary Direkt aus properties.activityDisplayName übernommen.
properties.additionalInfo network.http.user_agent, target.url Wird als JSON geparst. Wenn der Schlüssel „userAgent“ ist, wird der Wert network.http.user_agent und network.http.parsed_user_agent zugeordnet. Wenn der Schlüssel „alertUrl“ ist, ordnen Sie den Wert target.url zu.
properties.appliedConditionalAccessPolicies.[].displayName security_result.[].rule_name Direkt aus properties.appliedConditionalAccessPolicies.[].displayName übernommen.
properties.appliedConditionalAccessPolicies.[].enforcedGrantControls security_result.[].rule_labels.value Direkt aus properties.appliedConditionalAccessPolicies.[].enforcedGrantControls zugeordnet mit dem Label-Schlüssel „applied_conditional_access_policies_enforced_grant_controls“.
properties.appliedConditionalAccessPolicies.[].enforcedSessionControls security_result.[].rule_labels.value Direkt aus properties.appliedConditionalAccessPolicies.[].enforcedSessionControls zugeordnet mit dem Label-Schlüssel „applied_conditional_access_policies_enforced_session_controls“.
properties.appliedConditionalAccessPolicies.[].id security_result.[].rule_id Direkt aus properties.appliedConditionalAccessPolicies.[].id übernommen.
properties.appliedConditionalAccessPolicies.[].result security_result.[].detection_fields.value Direkt aus properties.appliedConditionalAccessPolicies.[].result zugeordnet mit dem Label-Schlüssel „Result“.
properties.appId appId Direkt aus properties.appId übernommen.
properties.appDisplayName target.application Direkt aus properties.appDisplayName übernommen.
properties.authenticationDetails.[].authenticationMethod security_result.detection_fields.value Direkt zugeordnet von properties.authenticationDetails.[].authenticationMethod mit dem Label-Schlüssel „authenticationMethod“.
properties.authenticationDetails.[].authenticationMethodDetail security_result.detection_fields.value Direkt aus properties.authenticationDetails.[].authenticationMethodDetail zugeordnet mit dem Labelschlüssel „authenticationMethodDetail“.
properties.authenticationDetails.[].authenticationStepDateTime security_result.detection_fields.value Direkt aus properties.authenticationDetails.[].authenticationStepDateTime zugeordnet, mit dem Label-Schlüssel „authenticationStepDateTime“.
properties.authenticationDetails.[].authenticationStepRequirement security_result.detection_fields.value Direkt aus properties.authenticationDetails.[].authenticationStepRequirement zugeordnet mit dem Label-Schlüssel „authenticationStepRequirement“.
properties.authenticationDetails.[].authenticationStepResultDetail security_result.detection_fields.value Direkt aus properties.authenticationDetails.[].authenticationStepResultDetail zugeordnet mit dem Label-Schlüssel „authenticationStepResultDetail“.
properties.authenticationRequirement additional.fields.value.string_value Direkt aus properties.authenticationRequirement zugeordnet mit dem Label-Schlüssel „AuthenticationRequirement“.
properties.authenticationRequirementPolicies.[].detail security_result.detection_fields.value Direkt zugeordnet aus properties.authenticationRequirementPolicies.[].detail mit dem Labelschlüssel „detail“.
properties.authenticationRequirementPolicies.[].requirementProvider security_result.detection_fields.value Direkt aus properties.authenticationRequirementPolicies.[].requirementProvider zugeordnet mit dem Label-Schlüssel „requirementProvider“.
properties.clientAppUsed principal.application Direkt aus properties.clientAppUsed übernommen.
properties.conditionalAccessStatus additional.fields.value.string_value Direkt zugeordnet aus properties.conditionalAccessStatus mit dem Label-Schlüssel „conditionalAccessStatus“.
properties.crossTenantAccessType additional.fields.value.string_value Direkt zugeordnet von properties.crossTenantAccessType mit dem Label-Schlüssel „crossTenantAccessType“.
properties.detectedDateTime additional.fields.value.string_value Direkt aus properties.detectedDateTime zugeordnet mit dem Label-Schlüssel „detectedDateTime“.
properties.detectionTimingType additional.fields.value.string_value Direkt aus properties.detectionTimingType zugeordnet, wobei der Labelschlüssel „detectionTimingType“ ist.
properties.homeTenantId additional.fields.value.string_value Direkt aus properties.homeTenantId zugeordnet mit dem Label-Schlüssel „homeTenantId“.
properties.id metadata.product_log_id Direkt aus properties.id übernommen.
properties.initiatedBy.user.displayName principal.user.user_display_name Direkt aus properties.initiatedBy.user.displayName übernommen.
properties.initiatedBy.user.id principal.user.windows_sid Direkt aus properties.initiatedBy.user.id übernommen.
properties.initiatedBy.user.ipAddress principal.ip, principal.asset.ip Direkt aus properties.initiatedBy.user.ipAddress übernommen.
properties.initiatedBy.user.userPrincipalName principal.user.email_addresses, principal.user.userid Direkt aus properties.initiatedBy.user.userPrincipalName übernommen. Wenn es sich um eine E-Mail-Adresse handelt, wird sie email_addresses zugeordnet, andernfalls userid.
properties.ipAddress principal.ip, principal.asset.ip Direkt aus properties.ipAddress übernommen.
properties.isGuest additional.fields.value.string_value Direkt aus properties.isGuest zugeordnet mit dem Label-Schlüssel „isGuest“.
properties.isDeleted additional.fields.value.string_value Direkt aus properties.isDeleted zugeordnet, wobei der Label-Schlüssel „isDeleted“ ist.
properties.isProcessing additional.fields.value.string_value Direkt aus properties.isProcessing zugeordnet, wobei der Labelschlüssel „isProcessing“ ist.
properties.lastUpdatedDateTime additional.fields.value.string_value Direkt aus properties.lastUpdatedDateTime mit dem Label-Schlüssel „lastUpdatedDateTime“ zugeordnet.
properties.location.city principal.location.city Direkt aus properties.location.city übernommen.
properties.location.countryOrRegion principal.location.country_or_region Direkt aus properties.location.countryOrRegion übernommen.
properties.location.geoCoordinates.latitude principal.location.region_latitude, principal.location.region_coordinates.latitude Direkt aus properties.location.geoCoordinates.latitude übernommen.
properties.location.geoCoordinates.longitude principal.location.region_longitude, principal.location.region_coordinates.longitude Direkt aus properties.location.geoCoordinates.longitude übernommen.
properties.location.state principal.location.state Direkt aus properties.location.state übernommen.
properties.networkLocationDetails.[].networkNames additional.fields.value.string_value Verkettete Werte aus properties.networkLocationDetails.[].networkNames mit dem Labelschlüssel „properties networkName {index}“.
properties.networkLocationDetails.[].networkType additional.fields.value.string_value Direkt zugeordnet aus properties.networkLocationDetails.[].networkType mit dem Label-Schlüssel „properties networkType {index}“.
properties.riskEventType additional.fields.value.string_value Direkt aus properties.riskEventType zugeordnet, wobei „riskEventType“ als Labelschlüssel verwendet wird.
properties.riskLastUpdatedDateTime additional.fields.value.string_value Direkt aus properties.riskLastUpdatedDateTime zugeordnet, wobei der Label-Schlüssel „riskLastUpdatedDateTime“ lautet.
properties.riskLevel additional.fields.value.string_value Direkt aus properties.riskLevel zugeordnet, wobei der Labelschlüssel „riskLevel“ ist.
properties.riskLevelDuringSignIn additional.fields.value.string_value Direkt aus properties.riskLevelDuringSignIn mit dem Labelschlüssel „riskLevelDuringSignIn“ zugeordnet.
properties.riskState additional.fields.value.string_value Direkt aus properties.riskState zugeordnet, mit dem Label-Schlüssel „riskState“.
properties.riskDetail additional.fields.value.string_value Direkt aus properties.riskDetail zugeordnet mit dem Label-Schlüssel „riskDetail“.
properties.riskType additional.fields.value.string_value Direkt aus properties.riskType zugeordnet, wobei der Labelschlüssel „riskType“ ist.
properties.source additional.fields.value.string_value Direkt aus properties.source zugeordnet, mit dem Label-Schlüssel „source“.
properties.targetResources.0.id target.user.product_object_id Direkt aus properties.targetResources.0.id übernommen.
properties.targetResources.modifiedProperties.0.newValue target.group.product_object_id Direkt aus properties.targetResources.modifiedProperties.0.newValue übernommen.
properties.tokenIssuerType additional.fields.value.string_value Direkt aus properties.tokenIssuerType zugeordnet, wobei der Labelschlüssel „tokenIssuerType“ ist.
properties.userAgent network.http.user_agent, network.http.parsed_user_agent Direkt aus properties.userAgent übernommen.
properties.userDisplayName target.user.user_display_name Direkt aus properties.userDisplayName übernommen.
properties.userId target.user.product_object_id Direkt aus properties.userId übernommen.
properties.userPrincipalName target.user.userid, target.user.email_addresses Direkt aus properties.userPrincipalName übernommen. Wenn es sich um eine E-Mail-Adresse handelt, wird sie email_addresses zugeordnet, andernfalls userid.
result security_result.action, security_result.action_details Wenn result „success“ ist, dann ALLOW.
resultDescription security_result.description Direkt aus resultDescription übernommen.
resultSignature additional.fields.value.string_value Direkt zugeordnet aus resultSignature mit dem Label-Schlüssel „resultSignature“.
resultType security_result.rule_id, action, security_result.summary Wenn resultType gleich „0“ ist, dann ALLOW und „Erfolgreiche Anmeldung“. Andernfalls BLOCK und „Failed login occurred“ (Fehler bei der Anmeldung).
resourceId target.resource.id, target.resource.product_object_id Direkt aus resourceId übernommen.
resourceDisplayName target.resource.name, appDisplayName Direkt aus resourceDisplayName übernommen.
riskDetail additional.fields.value.string_value Direkt aus riskDetail zugeordnet mit dem Label-Schlüssel „riskDetail“.
riskEventTypes.[]. additional.fields.value.string_value, additional.fields.value.list_value.values.string_value Werte werden einer Liste mit dem Schlüssel „riskEventTypes“ in additional.fields hinzugefügt. Außerdem wird jeder Wert als separates Feld mit dem Schlüssel „riskEventType“ in additional.fields hinzugefügt.
riskEventTypes_v2.[]. additional.fields.value.list_value.values.string_value Werte werden einer Liste mit dem Schlüssel „riskEventTypes_v2“ in additional.fields hinzugefügt.
riskLevelAggregated additional.fields.value.string_value Direkt aus riskLevelAggregated mit dem Label-Schlüssel „riskLevelAggregated“ zugeordnet.
riskLevelDuringSignIn additional.fields.value.string_value Direkt aus riskLevelDuringSignIn mit dem Labelschlüssel „riskLevelDuringSignIn“ zugeordnet.
riskState additional.fields.value.string_value Direkt aus riskState zugeordnet, mit dem Label-Schlüssel „riskState“.
status.additionalDetails security_result.description Direkt aus status.additionalDetails übernommen.
status.errorCode security_result.rule_id, errorCode Direkt aus status.errorCode übernommen.
target.displayName resourceDisplayName Direkt aus target.displayName übernommen.
target.id resourceId Direkt aus target.id übernommen.
target.modifiedProperties.[].displayName target.resource.attribute.labels.key Direkt aus target.modifiedProperties.[].displayName übernommen.
target.modifiedProperties.[].newValue target.resource.attribute.labels.value, target.resource.product_object_id Direkt aus target.modifiedProperties.[].newValue übernommen.
target.modifiedProperties.[].oldValue target.resource.attribute.labels.value Direkt aus target.modifiedProperties.[].oldValue übernommen.
target.type target.resource.type Direkt aus target.type übernommen.
tenantId metadata.product_deployment_id Direkt aus tenantId übernommen.
time when Das Feld when wird aus dem Feld time abgeleitet. Datum und Uhrzeit werden mit „grok“ aus dem Feld time extrahiert und dann zum Feld when kombiniert.
userAgent network.http.user_agent, network.http.parsed_user_agent Direkt aus userAgent übernommen.
userDisplayName target.user.user_display_name Direkt aus userDisplayName übernommen.
userId target.user.product_object_id Direkt aus userId übernommen.
userPrincipalName target.user.userid, principal.administrative_domain, target.user.email_addresses Direkt aus userPrincipalName übernommen. Wenn es sich um eine E-Mail-Adresse handelt, wird sie email_addresses zugeordnet und der Domainteil wird extrahiert und principal.administrative_domain zugeordnet. Andernfalls wird sie auf userid abgebildet.
(Parserlogik) event.idm.is_alert, event.idm.is_significant Auf „true“ setzen, wenn die Stufe „Kritisch“ ist.
(Parserlogik) event.idm.read_only_udm.metadata.event_type Auf „USER_LOGIN“ festgelegt, wenn has_target_user „true“ ist. Auf „USER_UNCATEGORIZED“ festgelegt, wenn has_principal_user „true“ ist. Wird auf „STATUS_UPDATE“ gesetzt, wenn has_principal „true“ ist. Andernfalls auf „GENERIC_EVENT“ festlegen.
(Parserlogik) event.idm.read_only_udm.metadata.vendor_name Legen Sie diesen Wert auf „Microsoft“ fest.
(Parserlogik) event.idm.read_only_udm.metadata.product_name Legen Sie diesen Wert auf „Azure AD“ fest.
(Parserlogik) event.idm.read_only_udm.extensions.auth.type Legen Sie diesen Wert auf „SSO“ fest.
(Parserlogik) event.idm.read_only_udm.extensions.auth.mechanism Auf „INTERACTIVE“ setzen, wenn isInteractive „true“ ist. Andernfalls auf „MECHANISM_OTHER“ festlegen.
(Parserlogik) security_result.action Auf ALLOW gesetzt, wenn das Ergebnis erfolgreich ist.
(Parserlogik) security_result.action Auf ALLOW gesetzt, wenn resultType = 0.
(Parserlogik) security_result.action Auf BLOCK festlegen, wenn resultType nicht 0 und nicht „“ ist.
(Parserlogik) security_result.category Wird auf „AUTH_VIOLATION“ festgelegt, wenn „resultType“ nicht 0 und nicht leer ist.
(Parserlogik) security_result.description Auf „Group membership modified“ (Gruppenmitgliedschaft geändert) festgelegt, wenn „operationName“ „Add member to group“ (Mitglied zur Gruppe hinzufügen) ist und das Ergebnis „success“ (erfolgreich) lautet.
(Parserlogik) security_result.priority Wird auf „MEDIUM_PRIORITY“ festgelegt, wenn „properties.riskLevelDuringSignIn“ „medium“ ist.
(Parserlogik) security_result.summary Wird auf „Successful login occurred“ (Erfolgreiche Anmeldung) gesetzt, wenn resultType 0 ist.
(Parserlogik) security_result.summary Wird auf „Failed login occurred“ (Fehler bei der Anmeldung) festgelegt, wenn resultType nicht 0 und nicht „“ ist.
(Parserlogik) security_result.summary Wird auf „properties.activityDisplayName“ festgelegt, falls vorhanden.
(Parserlogik) security_result.severity Auf INFORMATIONAL festlegen, wenn die Stufe „Information“, „Informational“, „0“ oder „4“ ist. Auf MEDIUM festlegen, wenn das Niveau „Warnung“, „1“ oder „3“ ist. Wird auf ERROR gesetzt, wenn der Schweregrad „Error“ oder „2“ ist. Wird auf „CRITICAL“ gesetzt, wenn die Stufe „Critical“ ist.
(Parserlogik) security_result.severity Wird auf ERROR gesetzt, wenn resultType nicht 0 und nicht „“ ist.

Änderungsprotokoll

Änderungsprotokoll für diesen Parser ansehen

Benötigen Sie weitere Hilfe? Antworten von Community-Mitgliedern und Google SecOps-Experten erhalten