Microsoft Entra ID-Anmeldeprotokolle erfassen
In diesem Dokument wird beschrieben, wie Sie Microsoft Entra ID-Anmeldelogs (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
Prüfen Sie, ob die folgenden Voraussetzungen erfüllt sind:
- Eine Google SecOps-Instanz
- Berechtigter 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 (Cloud-Anwendungsadministrator): Kann die Einwilligung für jede Berechtigung für jede API erteilen, mit Ausnahme von Microsoft Graph-App-Rollen (Anwendungsberechtigungen).
Methode 1: Azure Event Hub (empfohlen)
Bei dieser Methode werden Entra ID-Anmeldeprotokolle über Azure Event Hub mit aktivierter Erfassung gestreamt, wodurch die Daten in Azure Blob Storage geschrieben werden. Google SecOps nimmt die Logs dann über den Feedtyp „Azure Blob Storage V2“ aus Blob Storage auf.
Azure Storage-Konto konfigurieren
Speicherkonto erstellen
- Suchen Sie im Azure-Portal nach Speicherkonten.
- Klicken Sie auf + Erstellen.
Geben Sie die folgenden Konfigurationsdetails an:
Einstellung Wert Abo Azure-Abo auswählen Ressourcengruppe Vorhandenen auswählen oder neuen erstellen Name des Speicherkontos Geben Sie einen eindeutigen Namen ein, z. B. secopsaadsignin.Region Wählen Sie die Region aus, die Ihrem Event Hubs-Namespace am nächsten ist. Leistung Standard (empfohlen) Redundanz LRS (Locally Redundant Storage) oder GRS (Geo-Redundant Storage) Klicken Sie auf Überprüfen + Erstellen.
Prüfen Sie die Übersicht und klicken Sie auf Erstellen.
Warten Sie, bis die Bereitstellung abgeschlossen ist.
Anmeldedaten für das Speicherkonto abrufen
- Rufen Sie das von Ihnen erstellte Speicherkonto auf.
- Wählen Sie im linken Navigationsbereich unter Sicherheit + Netzwerk die Option Zugriffsschlüssel aus.
- Klicken Sie auf Schlüssel anzeigen.
- Kopieren und speichern Sie Folgendes:
- Name des Speicherkontos
- Schlüssel 1 oder Schlüssel 2: Der freigegebene Zugriffsschlüssel.
Event Hub-Namespace und Event Hub erstellen
Event Hubs-Namespace erstellen
- Suchen Sie im Azure-Portal nach Event Hubs.
- Klicken Sie auf + Erstellen.
Geben Sie die folgenden Konfigurationsdetails an:
Einstellung Wert Abo Azure-Abo auswählen Ressourcengruppe Wählen Sie dieselbe Ressourcengruppe wie für Ihr Speicherkonto aus. Namespace-Name Geben Sie einen eindeutigen Namen ein, z. B. secops-entraid-signin.Standort Wählen Sie dieselbe Region wie für Ihr Speicherkonto aus. Preisstufe Standard (für Event Hub Capture erforderlich) Klicken Sie auf Überprüfen + Erstellen und dann auf Erstellen.
Warten Sie, bis die Bereitstellung abgeschlossen ist.
Event Hub erstellen
- Rufen Sie den von Ihnen erstellten Event Hubs-Namespace auf.
- Klicken Sie oben auf + Event Hub.
- Geben Sie die folgenden Konfigurationsdetails an:
- Name: Geben Sie einen Namen ein, z. B.
entraid-signin-logs. - Anzahl der Partitionen: 2 (Standardwert, kann für einen höheren Durchsatz erhöht werden).
- Bereinigungsrichtlinie: Löschen.
- Aufbewahrungsdauer (Std.): 24 (Minimum, bei Bedarf für mehr Stabilität erhöhen).
- Name: Geben Sie einen Namen ein, z. B.
- Klicken Sie auf Überprüfen + Erstellen und dann auf Erstellen.
Event Hub Capture aktivieren
- Rufen Sie den Event Hub auf, den Sie erstellt haben (im Namespace).
- Wählen Sie im Navigationsbereich links Aufnehmen aus.
- Legen Sie Aufzeichnen auf An fest.
Geben Sie die folgenden Konfigurationsdetails an:
Einstellung Wert Zeitfenster (Minuten) 5 (oder niedriger für nahezu in Echtzeit) Größenfenster (MB) 300 Aufnahmeanbieter Azure Blob Storage Azure-Abo Abo auswählen Storage Account (Speicherkonto) Wählen Sie das von Ihnen erstellte Speicherkonto aus. Blob-Container Container erstellen oder auswählen (z. B. entraid-signin-capture)Klicken Sie auf Speichern.
Diagnoseeinstellungen für Entra ID konfigurieren
- Suchen Sie im Azure-Portal nach Microsoft Entra ID.
- Wählen Sie im Navigationsbereich links Monitoring & Health > Diagnoseeinstellungen aus.
- Klicken Sie auf Diagnoseeinstellung hinzufügen.
- 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: Nicht interaktive Nutzeranmeldungen (optional, empfohlen).
- ServicePrincipalSignInLogs: Anmeldungen von Dienstprinzipalen (optional).
- ManagedIdentitySignInLogs: Anmeldungen mit verwalteter Identität (optional).
- Wählen Sie im Abschnitt Zieldetails die Option Stream to an event hub (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.
- Name der Diagnoseeinstellung: Geben Sie einen aussagekräftigen Namen ein, z. B.
Klicken Sie auf Speichern.
Feeds einrichten
Es gibt zwei verschiedene Einstiegspunkte zum Einrichten von Feeds in der Google SecOps-Plattform:
- SIEM-Einstellungen > Feeds > Neuen Feed hinzufügen
- Content Hub > Content-Pakete > Erste Schritte
Feed in Google SecOps konfigurieren, um Entra ID-Anmeldeprotokolle aufzunehmen
- Klicken Sie auf das Paket Azure-Plattform.
- Suchen Sie nach dem Protokolltyp Azure AD.
Geben Sie Werte für die folgenden Felder an:
- Quelltyp: Microsoft Azure Blob Storage V2
Azure-URI: Geben Sie die Blob Service-Endpunkt-URL mit dem Pfad des Erfassungscontainers ein:
https://<storage-account>.blob.core.windows.net/entraid-signin-capture/Ersetzen Sie
<storage-account>durch den Namen Ihres Azure-Speicherkontos.Option zum Löschen der Quelle: Wählen Sie die gewünschte Option zum Löschen aus:
- Nie: Es werden nach Übertragungen nie Dateien gelöscht.
- Übertragene Dateien löschen: Löscht Dateien nach der erfolgreichen Übertragung.
- Übertragene Dateien und leere Verzeichnisse löschen: Dateien und leere Verzeichnisse werden nach der erfolgreichen Übertragung gelöscht.
Maximales Dateialter: Dateien einschließen, die in den letzten Tagen geändert wurden. Der Standardwert ist 180 Tage.
Gemeinsamer Schlüssel: Geben Sie den Wert des gemeinsamen Zugriffsschlüssels aus dem Speicherkonto ein.
Asset-Namespace: Der Asset-Namespace.
Aufnahmelabels: Das Label, das auf die Ereignisse aus diesem Feed angewendet werden soll.
Klicken Sie auf Feed erstellen.
Nachdem Sie den Feed erstellt haben, kann es 5 bis 10 Minuten dauern, bis Logs in Google SecOps angezeigt werden.
Weitere Informationen zum Konfigurieren mehrerer Feeds für verschiedene Logtypen in dieser Produktfamilie finden Sie unter Feeds nach Produkt konfigurieren.
Weitere Informationen zu Google Security Operations-Feeds finden Sie in der Dokumentation zu Google Security Operations-Feeds. Informationen zu den Anforderungen für die einzelnen Feedtypen finden Sie unter Feedkonfiguration nach Typ.
Azure Storage-Firewall konfigurieren (falls aktiviert)
Wenn für Ihr Azure-Speicherkonto eine Firewall verwendet wird, müssen Sie die IP-Bereiche von Google SecOps hinzufügen.
- Rufen Sie im Azure-Portal Ihr Storage-Konto auf.
- Wählen Sie unter Sicherheit + Netzwerk die Option Netzwerk aus.
- Wählen Sie unter Firewalls und virtuelle Netzwerke die Option Aktiviert für ausgewählte virtuelle Netzwerke und IP-Adressen aus.
- Klicken Sie im Bereich Firewall unter Adressbereich auf + IP-Bereich hinzufügen.
- Fügen Sie jeden Google SecOps-IP-Bereich in CIDR-Notation hinzu.
- Weitere Informationen finden Sie in der Dokumentation zur Zulassungsliste für IP-Adressen.
- Sie können sie auch programmatisch mit der Feed Management API abrufen.
- Klicken Sie auf Speichern.
Methode 2: Drittanbieter-API
Bei dieser Methode wird die Microsoft Graph API verwendet, um Entra ID-Anmeldeprotokolle direkt von Ihrem Microsoft-Mandanten abzurufen.
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
- Rufen Sie die SIEM-Einstellungen > Feeds auf.
- Klicken Sie auf Neuen Feed hinzufügen.
- Notieren Sie sich die IP-Bereiche, die auf der Benutzeroberfläche zur Feederstellung angezeigt werden.
- Alternativ können Sie IP-Bereiche programmatisch über die Feed Management API abrufen.
Bedingten Zugriff für Arbeitslastidentitäten konfigurieren (falls erforderlich)
Wenn Ihre Organisation Richtlinien für den bedingten Zugriff verwendet, die den Zugriff nach Standort einschränken:
- Gehen Sie im Microsoft Entra Admin Center zu Schutz > Bedingter Zugriff > Benannte Standorte.
- Klicken Sie auf + Neuer Standort.
- Geben Sie die folgenden Konfigurationsdetails an:
- Name: Geben Sie
Google SecOps IP Rangesein. - Als vertrauenswürdigen Standort markieren: Optional, je nach Ihrer Sicherheitsrichtlinie.
- IP-Bereiche: Fügen Sie jeden Google SecOps-IP-Bereich in CIDR-Notation hinzu.
- Name: Geben Sie
- Klicken Sie auf Erstellen.
- Rufen Sie Conditional Access > Policies (Bedingter Zugriff > Richtlinien) auf.
- Konfigurieren Sie für alle Richtlinien, die für Workload-Identitäten gelten, einen Ausschluss für den benannten Standort
Google SecOps IP Rangesoder den spezifischen Dienstprinzipal.
Microsoft Azure AD-API-Zugriff konfigurieren
App-Registrierung erstellen
- Melden Sie sich im Microsoft Entra Admin Center oder im Azure-Portal an.
- Rufen Sie Identität > Anwendungen > Anwendungsregistrierungen auf.
- Klicken Sie auf Neue Registrierung.
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.
- Weiterleitungs-URI: Lassen Sie das Feld leer (nicht für die Authentifizierung des Dienstprinzipals erforderlich).
- Name: Geben Sie einen aussagekräftigen Namen ein, z. B.
Klicken Sie auf Registrieren.
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:
- Rufen Sie in der App-Registrierung API-Berechtigungen auf.
- Klicken Sie auf Berechtigung hinzufügen.
- Wählen Sie Microsoft Graph > Anwendungsberechtigungen aus.
- 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.
- Klicken Sie auf Berechtigungen hinzufügen.
- Klicken Sie auf Administratoreinwilligung für [Ihre Organisation]erteilen.
- 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 | Sicherheitsereignisse lesen |
Clientschlüssel erstellen
- Rufen Sie Zertifikate und Secrets auf.
- Klicken Sie auf Neuer geheimer Clientschlüssel.
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.
- Beschreibung: Geben Sie einen aussagekräftigen Namen ein, z. B.
Klicken Sie auf Hinzufügen.
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 successfullyAuthentifizierung 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"
Feeds einrichten
Es gibt zwei verschiedene Einstiegspunkte zum Einrichten von Feeds in der Google SecOps-Plattform:
- SIEM-Einstellungen > Feeds > Neuen Feed hinzufügen
- Content Hub > Content-Pakete > Erste Schritte
Feed in Google SecOps konfigurieren, um Microsoft Azure AD-Anmeldelogs aufzunehmen
- Klicken Sie auf das Paket Azure-Plattform.
- Suchen Sie nach dem Protokolltyp Azure AD.
Geben Sie Werte für die folgenden Felder an:
- Source Type (Quelltyp): Third party API (API von Drittanbietern) (empfohlen)
- 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/signInsAPI-Authentifizierungsendpunkt: Microsoft Active Directory-Authentifizierungsendpunkt:
login.microsoftonline.com
Erweiterte Optionen:
- Feedname: Ein vorausgefüllter Wert, der den Feed identifiziert.
- Asset-Namespace: Der Asset-Namespace, mit dem der Feed verknüpft wird.
- Aufnahmelabels: Alle Ereignisse aus diesem Feed werden mit Labels versehen.
Klicken Sie auf Feed erstellen.
Nachdem Sie den Feed erstellt haben, werden Kontextdaten regelmäßig abgerufen. Es kann bis zu 24 Stunden dauern, bis der erste Verzeichnissnapshot in Google SecOps angezeigt wird.
Weitere Informationen zum Konfigurieren mehrerer Feeds für verschiedene Logtypen in dieser Produktfamilie finden Sie unter Feeds nach Produkt konfigurieren.
Weitere Informationen zu Google Security Operations-Feeds finden Sie in der Dokumentation zu Google Security Operations-Feeds. Informationen zu den Anforderungen für die einzelnen Feedtypen finden Sie unter Feedkonfiguration nach Typ. Wenn beim Erstellen von Feeds Probleme auftreten, wenden Sie sich an den Google Security Operations-Support.
Regionale Endpunkte
Verwenden Sie für Microsoft Azure AD-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“-Format ist, 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 von activityDisplayName zugeordnet. |
additionalDetails.0.value |
network.http.user_agent |
Direkt von additionalDetails.0.value zugeordnet. |
additionalDetails.1.key |
target.resource.attribute.labels.key |
Direkt von additionalDetails.1.key zugeordnet. |
additionalDetails.1.value |
target.resource.attribute.labels.value |
Direkt von additionalDetails.1.value zugeordnet. |
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 von am_category zugeordnet. |
am_tenantId |
metadata.product_deployment_id |
Direkt von am_tenantId zugeordnet. |
appId |
target.resource.attribute.labels.value |
Direkt aus appId zugeordnet, wobei der Labelschlüssel „App-ID“ ist. |
appDisplayName |
target.application |
Direkt von appDisplayName zugeordnet. |
appliedConditionalAccessPolicies.[].displayName |
security_result.[].rule_name, about.[].user.user_display_name |
Direkt von appliedConditionalAccessPolicies.[].displayName zugeordnet. |
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 zugeordnet von appliedConditionalAccessPolicies.[].enforcedSessionControls mit dem Label-Schlüssel „applied_conditional_access_policies_enforced_session_controls“. |
appliedConditionalAccessPolicies.[].id |
security_result.[].rule_id, about.[].user.userid |
Direkt von appliedConditionalAccessPolicies.[].id zugeordnet. |
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 aus 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 aus authenticationRequirementPolicies.[].detail zugeordnet 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 von callerIpAddress zugeordnet. |
category |
metadata.description |
Direkt von category zugeordnet. |
clientAppUsed |
principal.application |
Direkt von clientAppUsed zugeordnet. |
conditionalAccessStatus |
additional.fields.value.string_value |
Direkt aus conditionalAccessStatus zugeordnet mit dem Label-Schlüssel „conditionalAccessStatus“. |
correlationId |
network.session_id, security_result.detection_fields.value |
Direkt von correlationId zugeordnet. Wird auch als security_result.detection_fields.value mit dem Labelschlü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 von deviceDetail.browser zugeordnet. |
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 von deviceDetail.displayName zugeordnet. |
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 von deviceDetail.operatingSystem zugeordnet. |
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 von id zugeordnet. |
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 von initiatedBy.user.displayName zugeordnet. |
initiatedBy.user.id |
principal.user.userid, principal.user.windows_sid |
Direkt von initiatedBy.user.id zugeordnet. |
initiatedBy.user.ipAddress |
principal.ip, principal.asset.ip |
Direkt von initiatedBy.user.ipAddress zugeordnet. |
initiatedBy.user.userPrincipalName |
principal.user.email_addresses, principal.user.userid |
Direkt von initiatedBy.user.userPrincipalName zugeordnet. Wenn es sich um eine E-Mail-Adresse handelt, wird sie email_addresses zugeordnet, andernfalls userid. |
Level |
security_result.severity_details, level |
Direkt von Level zugeordnet. |
level |
security_result.severity_details, security_result.severity |
Direkt von level zugeordnet. Wird nach der Konvertierung 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 von location.city zugeordnet. |
location.countryOrRegion |
principal.location.country_or_region |
Direkt von location.countryOrRegion zugeordnet. |
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 von location.geoCoordinates.latitude zugeordnet. |
location.geoCoordinates.longitude |
principal.location.region_longitude, principal.location.region_coordinates.longitude |
Direkt von location.geoCoordinates.longitude zugeordnet. |
location.state |
principal.location.state |
Direkt von location.state zugeordnet. |
location |
principal.location.name |
Direkt von location zugeordnet. |
log_type |
metadata.log_type |
Direkt von log_type zugeordnet. |
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 Labelschlü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 von operationType zugeordnet. |
properties.activity |
security_result.summary |
Direkt von properties.activity zugeordnet. |
properties.activityDateTime |
when |
Aus dem Feld properties.activityDateTime geparst. Wenn das Feld nicht im erwarteten Format „JJJJ-MM-TTTHH:mm:ss.SSSZ“ oder „ISO8601“-Format ist, 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 von properties.activityDisplayName zugeordnet. |
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 von properties.appliedConditionalAccessPolicies.[].displayName zugeordnet. |
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 zugeordnet von properties.appliedConditionalAccessPolicies.[].enforcedSessionControls mit dem Label-Schlüssel „applied_conditional_access_policies_enforced_session_controls“. |
properties.appliedConditionalAccessPolicies.[].id |
security_result.[].rule_id |
Direkt von properties.appliedConditionalAccessPolicies.[].id zugeordnet. |
properties.appliedConditionalAccessPolicies.[].result |
security_result.[].detection_fields.value |
Direkt aus properties.appliedConditionalAccessPolicies.[].result zugeordnet mit dem Label-Schlüssel „Result“. |
properties.appId |
appId |
Direkt von properties.appId zugeordnet. |
properties.appDisplayName |
target.application |
Direkt von properties.appDisplayName zugeordnet. |
properties.authenticationDetails.[].authenticationMethod |
security_result.detection_fields.value |
Direkt zugeordnet aus 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 aus properties.authenticationRequirementPolicies.[].detail zugeordnet 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 von properties.clientAppUsed zugeordnet. |
properties.conditionalAccessStatus |
additional.fields.value.string_value |
Direkt aus properties.conditionalAccessStatus zugeordnet 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, wobei der Label-Schlüssel „detectedDateTime“ ist. |
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 von properties.id zugeordnet. |
properties.initiatedBy.user.displayName |
principal.user.user_display_name |
Direkt von properties.initiatedBy.user.displayName zugeordnet. |
properties.initiatedBy.user.id |
principal.user.windows_sid |
Direkt von properties.initiatedBy.user.id zugeordnet. |
properties.initiatedBy.user.ipAddress |
principal.ip, principal.asset.ip |
Direkt von properties.initiatedBy.user.ipAddress zugeordnet. |
properties.initiatedBy.user.userPrincipalName |
principal.user.email_addresses, principal.user.userid |
Direkt von properties.initiatedBy.user.userPrincipalName zugeordnet. Wenn es sich um eine E-Mail-Adresse handelt, wird sie email_addresses zugeordnet, andernfalls userid. |
properties.ipAddress |
principal.ip, principal.asset.ip |
Direkt von properties.ipAddress zugeordnet. |
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, mit dem Label-Schlüssel „isDeleted“. |
properties.isProcessing |
additional.fields.value.string_value |
Direkt aus properties.isProcessing zugeordnet mit dem Label-Schlüssel „isProcessing“. |
properties.lastUpdatedDateTime |
additional.fields.value.string_value |
Direkt aus properties.lastUpdatedDateTime zugeordnet, mit dem Label-Schlüssel „lastUpdatedDateTime“. |
properties.location.city |
principal.location.city |
Direkt von properties.location.city zugeordnet. |
properties.location.countryOrRegion |
principal.location.country_or_region |
Direkt von properties.location.countryOrRegion zugeordnet. |
properties.location.geoCoordinates.latitude |
principal.location.region_latitude, principal.location.region_coordinates.latitude |
Direkt von properties.location.geoCoordinates.latitude zugeordnet. |
properties.location.geoCoordinates.longitude |
principal.location.region_longitude, principal.location.region_coordinates.longitude |
Direkt von properties.location.geoCoordinates.longitude zugeordnet. |
properties.location.state |
principal.location.state |
Direkt von properties.location.state zugeordnet. |
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 aus properties.networkLocationDetails.[].networkType zugeordnet mit dem Label-Schlüssel „properties networkType {index}“. |
properties.riskEventType |
additional.fields.value.string_value |
Direkt aus properties.riskEventType zugeordnet, wobei der Label-Schlüssel „riskEventType“ ist. |
properties.riskLastUpdatedDateTime |
additional.fields.value.string_value |
Direkt aus properties.riskLastUpdatedDateTime zugeordnet, mit dem Label-Schlüssel „riskLastUpdatedDateTime“. |
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 Label-Schlü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, wobei der Labelschlüssel „source“ ist. |
properties.targetResources.0.id |
target.user.product_object_id |
Direkt von properties.targetResources.0.id zugeordnet. |
properties.targetResources.modifiedProperties.0.newValue |
target.group.product_object_id |
Direkt von properties.targetResources.modifiedProperties.0.newValue zugeordnet. |
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 von properties.userAgent zugeordnet. |
properties.userDisplayName |
target.user.user_display_name |
Direkt von properties.userDisplayName zugeordnet. |
properties.userId |
target.user.product_object_id |
Direkt von properties.userId zugeordnet. |
properties.userPrincipalName |
target.user.userid, target.user.email_addresses |
Direkt von properties.userPrincipalName zugeordnet. 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 von resultDescription zugeordnet. |
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 von resourceId zugeordnet. |
resourceDisplayName |
target.resource.name, appDisplayName |
Direkt von resourceDisplayName zugeordnet. |
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 Label-Schlü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 von status.additionalDetails zugeordnet. |
status.errorCode |
security_result.rule_id, errorCode |
Direkt von status.errorCode zugeordnet. |
target.displayName |
resourceDisplayName |
Direkt von target.displayName zugeordnet. |
target.id |
resourceId |
Direkt von target.id zugeordnet. |
target.modifiedProperties.[].displayName |
target.resource.attribute.labels.key |
Direkt von target.modifiedProperties.[].displayName zugeordnet. |
target.modifiedProperties.[].newValue |
target.resource.attribute.labels.value, target.resource.product_object_id |
Direkt von target.modifiedProperties.[].newValue zugeordnet. |
target.modifiedProperties.[].oldValue |
target.resource.attribute.labels.value |
Direkt von target.modifiedProperties.[].oldValue zugeordnet. |
target.type |
target.resource.type |
Direkt von target.type zugeordnet. |
tenantId |
metadata.product_deployment_id |
Direkt von tenantId zugeordnet. |
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 von userAgent zugeordnet. |
userDisplayName |
target.user.user_display_name |
Direkt von userDisplayName zugeordnet. |
userId |
target.user.product_object_id |
Direkt von userId zugeordnet. |
userPrincipalName |
target.user.userid, principal.administrative_domain, target.user.email_addresses |
Direkt von userPrincipalName zugeordnet. Wenn es sich um eine E-Mail-Adresse handelt, wird sie email_addresses zugeordnet. 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“ festlegen, 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 legen Sie den Wert auf „GENERIC_EVENT“ fest. |
| (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 „“ 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. |
| (Parserlogik) | security_result.summary |
Wird auf „Failed login occurred“ (Fehler bei der Anmeldung) gesetzt, 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 Wert „Error“ oder „2“ ist. Auf „CRITICAL“ festgelegt, wenn die Stufe „Kritisch“ ist. |
| (Parserlogik) | security_result.severity |
Wird auf ERROR gesetzt, wenn resultType nicht 0 und nicht „“ ist. |
Benötigen Sie weitere Hilfe? Antworten von Community-Mitgliedern und Google SecOps-Experten erhalten