Raccogliere i log di accesso di Microsoft Entra ID (in precedenza Azure Active Directory)
Versione parser: 26.0
Questo documento spiega come raccogliere i log di accesso di Microsoft Entra ID (in precedenza Azure Active Directory) configurando un feed Google Security Operations. Puoi configurare l'importazione utilizzando due metodi: Azure Event Hub (opzione consigliata) o l'API di terze parti.
Prima di iniziare
Assicurati di soddisfare i seguenti prerequisiti:
- Istanza Google SecOps.
- Accesso con privilegi al portale di Microsoft Azure.
- Ruolo Amministratore della sicurezza o Amministratore globale in Microsoft Entra ID (obbligatorio per le impostazioni di diagnostica).
- Per il metodo API di terze parti, uno dei seguenti ruoli per la concessione del consenso amministratore:
- Amministratore globale: può concedere il consenso per qualsiasi autorizzazione, per qualsiasi API.
- Amministratore dei ruoli con privilegi: può concedere il consenso per qualsiasi autorizzazione, per qualsiasi API.
- Amministratore applicazioni cloud: può concedere il consenso per qualsiasi autorizzazione per qualsiasi API, ad eccezione dei ruoli app Microsoft Graph (autorizzazioni applicazione).
Metodo 1: Azure Event Hub (consigliato)
Questo metodo trasmette in streaming i log di accesso di Microsoft Entra ID tramite Azure Event Hub utilizzando le impostazioni di diagnostica. Google SecOps importa i log direttamente dall'hub eventi utilizzando il tipo di feed Azure Event Hub.
Crea spazio dei nomi dell'hub eventi
Uno spazio dei nomi degli hub di evento è un contenitore di gestione per uno o più hub di evento.
- Nel portale Azure, cerca Event Hubs.
- Fai clic su + Crea.
Fornisci i seguenti dettagli di configurazione:
Impostazione Valore Abbonamento Seleziona il tuo abbonamento Azure Gruppo di risorse Seleziona esistente o crea nuovo Nome dello spazio dei nomi Inserisci un nome univoco (ad esempio, secops-entraid-signin).Località Seleziona la regione più vicina al tuo tenant Microsoft Entra Livello di prezzo Standard (consigliato per la produzione) Unità di throughput Inizia con 1, attiva il gonfiaggio automatico (opzione consigliata) Fai clic su Review + create (Rivedi e crea).
Rivedi la panoramica e fai clic su Crea.
Attendi il completamento del deployment (1-2 minuti).
Crea hub eventi
- Dopo il deployment dello spazio dei nomi, vai allo spazio dei nomi dell'hub di evento.
- Nel menu di navigazione a sinistra, seleziona Hub eventi in Entità.
- Fai clic su + Event Hub.
Fornisci i seguenti dettagli di configurazione:
Impostazione Valore Nome Inserisci un nome univoco (ad esempio, entraid-signin-logs).Conteggio partizioni 40 (consigliato per uno scaling ottimale di Google SecOps) Conservazione dei messaggi 7 giorni (minimo consigliato) Acquisizione Disattivato (non necessario per Google SecOps) Fai clic su Crea.
Recupera la stringa di connessione dell'hub di eventi
Google SecOps richiede una stringa di connessione per l'autenticazione a Event Hub.
Opzione A: stringa di connessione a livello di spazio dei nomi (consigliata)
- Vai allo spazio dei nomi dell'hub di evento.
- Nel menu di navigazione a sinistra, seleziona Criteri di accesso condiviso in Impostazioni.
- Fai clic sulla policy predefinita RootManageSharedAccessKey.
- Copia la stringa di connessione - chiave primaria.
- Salva questa stringa di connessione in modo sicuro.
Esempio:
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==
Opzione B: stringa di connessione a livello di hub eventi
- Vai all'hub di evento (non allo spazio dei nomi).
- Nel menu di navigazione a sinistra, seleziona Criteri di accesso condiviso in Impostazioni.
- Fai clic su + Aggiungi per creare una nuova policy.
- Fornisci i seguenti dettagli di configurazione:
- Nome criterio: inserisci un nome descrittivo (ad esempio
chronicle-read). - Autorizzazioni: seleziona Ascolta (accesso di sola lettura)
- Nome criterio: inserisci un nome descrittivo (ad esempio
- Fai clic su Crea.
- Fai clic sulla policy appena creata.
- Copia la stringa di connessione - chiave primaria.
Salva questa stringa di connessione in modo sicuro.
Configurare le impostazioni di diagnostica di Microsoft Entra ID
- Accedi al centro di amministrazione di Microsoft Entra come amministratore della sicurezza o ruolo superiore.
- Vai a Entra ID > Monitoraggio e integrità > Impostazioni di diagnostica.
- Fai clic su + Aggiungi impostazione di diagnostica.
- Fornisci i seguenti dettagli di configurazione:
- Nome impostazione diagnostica: inserisci un nome descrittivo (ad esempio
signin-logs-to-eventhub). - Nella sezione Log, seleziona le categorie di log di accesso che vuoi esportare:
- SignInLogs: accessi utente interattivi.
- NonInteractiveUserSignInLogs: accessi utente non interattivi (opzione consigliata).
- ServicePrincipalSignInLogs: accessi dell'entità servizio (facoltativo).
- ManagedIdentitySignInLogs: accessi con identità gestita (facoltativo).
- ADFSSignInLogs: log di accesso AD FS (facoltativo, se AD FS è in uso).
- RiskyUsers: utenti contrassegnati come a rischio da Microsoft Entra ID Protection (facoltativo).
- UserRiskEvents: dettagli dell'evento di accesso rischioso (facoltativo).
- Nella sezione Dettagli destinazione, seleziona Trasmetti in streaming a un hub eventi.
- Abbonamento: seleziona l'abbonamento contenente lo spazio dei nomi dell'hub eventi.
- Spazio dei nomi dell'hub eventi: seleziona lo spazio dei nomi che hai creato (ad esempio,
secops-entraid-signin). - Nome dell'hub eventi: seleziona l'hub eventi che hai creato (ad esempio,
entraid-signin-logs). - Nome policy dell'hub eventi: seleziona RootManageSharedAccessKey.
- Nome impostazione diagnostica: inserisci un nome descrittivo (ad esempio
Fai clic su Salva.
(Facoltativo) Configura Azure Blob Storage per il checkpoint
Google SecOps può utilizzare l'archiviazione BLOB di Azure per archiviare i checkpoint di Event Hub, che tengono traccia degli eventi elaborati. In questo modo si evita l'importazione duplicata se il feed viene temporaneamente interrotto.
Crea un account di archiviazione per il checkpoint
- Nel portale Azure, cerca Account di archiviazione.
- Fai clic su + Crea.
Fornisci i seguenti dettagli di configurazione:
Impostazione Valore Abbonamento Seleziona il tuo abbonamento Azure Gruppo di risorse Utilizza lo stesso gruppo di risorse di Event Hub Nome account di archiviazione Inserisci un nome univoco (ad esempio, secopsaadsignin).Regione Stessa regione dell'hub di eventi Prestazioni Standard Ridondanza Archiviazione con ridondanza locale (LRS) Fai clic su Review + create (Rivedi e crea).
Fai clic su Crea.
Crea contenitore blob
- Vai all'account di archiviazione che hai creato.
- Nel riquadro di navigazione a sinistra, seleziona Container nella sezione Archiviazione dati.
- Fai clic su + Contenitore.
- Fornisci i seguenti dettagli di configurazione:
- Nome: inserisci
checkpoints - Livello di accesso pubblico: privato (nessun accesso anonimo)
- Nome: inserisci
- Fai clic su Crea.
Recuperare le credenziali dell'account di archiviazione
- Nell'account di archiviazione, seleziona Chiavi di accesso in Sicurezza e networking.
- Fai clic su Mostra chiavi.
- Copia e salva:
- Nome account di archiviazione: il nome del tuo account di archiviazione.
- Chiave 1: il valore della chiave di accesso.
(Facoltativo) Creare un gruppo di consumer dedicato
Per impostazione predefinita, Event Hub fornisce un gruppo di consumer denominato $Default. Per gli ambienti di produzione, ti consigliamo di creare un gruppo di consumatori dedicato per Google SecOps.
- Vai all'hub di evento (non allo spazio dei nomi).
- Nel menu di navigazione a sinistra, seleziona Gruppi di consumatori in Entità.
- Fai clic su + Gruppo di consumatori.
- Fornisci i seguenti dettagli di configurazione:
- Nome: inserisci un nome descrittivo (ad esempio,
chronicle)
- Nome: inserisci un nome descrittivo (ad esempio,
Fai clic su Crea.
Configura un feed in Google SecOps per importare i log di accesso di Microsoft Entra ID
- Vai a Impostazioni SIEM > Feed.
- Fai clic su Aggiungi nuovo feed.
- Nella pagina successiva, fai clic su Configura un singolo feed.
- Nel campo Nome feed, inserisci un nome per il feed (ad esempio,
Microsoft Entra ID Sign-In Logs - Event Hub). - Seleziona Microsoft Azure Event Hub come Tipo di origine.
- Seleziona Microsoft Azure AD come Tipo di log.
- Fai clic su Avanti.
Specifica i valori per i seguenti parametri di input:
- Stringa di connessione dell'hub eventi: inserisci la stringa di connessione dell'hub eventi che hai acquisito in precedenza.
Se utilizzi la stringa di connessione a livello di spazio dei nomi:
- Assicurati di aver rimosso il parametro
EntityPath. - Devi anche fornire il Nome dell'hub di eventi nel campo successivo.
Se utilizzi la stringa di connessione a livello di hub eventi:
- Utilizza la stringa di connessione così com'è (incluso
EntityPath). Il campo Nome hub eventi può essere lasciato vuoto.
- Nome hub di eventi: inserisci il nome dell'hub di eventi, ad esempio
entraid-signin-logs.
Obbligatorio se utilizzi la stringa di connessione a livello di spazio dei nomi. Facoltativo se utilizzi la stringa di connessione a livello di hub eventi.
- Nome hub di eventi: inserisci il nome dell'hub di eventi, ad esempio
Gruppo di consumatori (facoltativo): inserisci il nome del gruppo di consumatori.
Lascia vuoto per utilizzare il gruppo di consumatori
$Defaultpredefinito.Se hai creato un gruppo di consumatori dedicato, inseriscine il nome (ad esempio
chronicle).Nome container Blob Storage (facoltativo): per il checkpoint, inserisci il nome del container (ad esempio
checkpoints).
Se fornisci l'archiviazione blob per il checkpoint:
- Nome account Azure Storage: inserisci il nome dell'account di archiviazione dalla configurazione del checkpoint.
Chiave dell'account di archiviazione Azure: inserisci la chiave di accesso dalla configurazione del checkpoint.
Spazio dei nomi dell'asset: lo spazio dei nomi dell'asset.
Etichette di importazione: l'etichetta da applicare agli eventi di questo feed.
Fai clic su Avanti.
Controlla la nuova configurazione del feed nella schermata Finalizza e poi fai clic su Invia.
Metodo 2: API di terze parti
Questo metodo utilizza l'API Microsoft Graph per recuperare i log di accesso di Microsoft Entra ID direttamente dal tuo tenant Microsoft.
Configura la lista consentita IP
Prima di creare il feed, devi inserire gli intervalli IP di Google SecOps nella lista consentita nelle impostazioni della rete di Microsoft Azure o nelle policy di accesso condizionale.
Ottenere gli intervalli IP di Google SecOps
- Vai a Impostazioni SIEM > Feed.
- Fai clic su Aggiungi nuovo feed.
- Prendi nota degli intervalli IP visualizzati nell'interfaccia di creazione dei feed.
- In alternativa, recupera gli intervalli IP in modo programmatico utilizzando l'API Feed Management.
Configura l'accesso condizionale per le identità dei carichi di lavoro (se necessario)
Se la tua organizzazione utilizza criteri di accesso condizionale che limitano l'accesso in base alla località:
- Nel Centro di amministrazione Microsoft Entra, vai a Protezione > Accesso condizionale > Posizioni denominate.
- Fai clic su + Nuova posizione.
- Fornisci i seguenti dettagli di configurazione:
- Nome: inserisci
Google SecOps IP Ranges. - Contrassegna come posizione attendibile: facoltativo, in base alla tua policy di sicurezza.
- Intervalli IP: aggiungi ogni intervallo IP di Google SecOps in notazione CIDR.
- Nome: inserisci
- Fai clic su Crea.
- Vai a Accesso condizionale > Norme.
- Per tutte le policy che si applicano alle identità dei workload, configura un'esclusione per la località denominata
Google SecOps IP Rangeso per il service principal specifico.
Configurare l'accesso all'API Microsoft Entra ID
Crea registrazione app
- Accedi al centro di amministrazione Microsoft Entra o al portale Azure.
- Vai ad Identità > Applicazioni > Registrazioni app.
- Fai clic su Nuova registrazione.
Fornisci i seguenti dettagli di configurazione:
- Nome: inserisci un nome descrittivo (ad esempio,
Google SecOps Sign-In Logs Integration). - Tipi di account supportati: seleziona Solo account in questa directory dell'organizzazione (singolo tenant).
- URI di reindirizzamento: lascia vuoto (non obbligatorio per l'autenticazione dell'entità di servizio).
- Nome: inserisci un nome descrittivo (ad esempio,
Fai clic su Register (Registrati).
Dopo la registrazione, copia e salva i seguenti valori:
- ID applicazione (client)
- ID directory (tenant)
Configura le autorizzazioni API
L'integrazione richiede le seguenti autorizzazioni dell'applicazione Microsoft Graph:
- Nella registrazione dell'app, vai ad API permissions (Autorizzazioni API).
- Fai clic su Aggiungi un'autorizzazione.
- Seleziona Microsoft Graph > Autorizzazioni applicazione.
- Seleziona le seguenti autorizzazioni:
- AuditLog.Read.All: necessario per leggere i log di accesso.
- Directory.Read.All: richiesto dall'API Microsoft Graph per l'accesso ai log di accesso (problema noto).
- SecurityEvents.Read.All: richiesto da Google Security Operations.
- Fai clic su Aggiungi autorizzazioni.
- Fai clic su Concedi il consenso amministratore per [La tua organizzazione].
- Verifica che la colonna Stato mostri Concesso per [la tua organizzazione] per tutte e tre le autorizzazioni.
| Autorizzazione | Tipo | Descrizione |
|---|---|---|
| AuditLog.Read.All | Applicazione | Leggere tutti i dati di accesso e dei log di controllo |
| Directory.Read.All | Applicazione | Leggi i dati della directory (obbligatorio per l'accesso all'API) |
| SecurityEvents.Read.All | Applicazione | Leggere gli eventi di sicurezza |
Crea client secret
- Vai a Certificates & secrets (Certificati e secret).
- Fai clic su Nuovo segreto client.
Fornisci i seguenti dettagli di configurazione:
- Descrizione: inserisci un nome descrittivo (ad esempio,
Google SecOps Feed). - Scade: seleziona un periodo di scadenza.
- Descrizione: inserisci un nome descrittivo (ad esempio,
Fai clic su Aggiungi.
Importante: copia immediatamente il valore del client secret. Questo valore viene visualizzato una sola volta e non può essere recuperato in un secondo momento.
Verifica l'accesso API prima di creare il feed
Prima di creare il feed Google SecOps, verifica che l'entità servizio possa autenticarsi e accedere correttamente all'API Microsoft Graph.
Testa l'autenticazione utilizzando PowerShell
# 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 }Output previsto:
✓ Successfully obtained access token ✓ Successfully accessed sign-ins API Sample sign-in log retrieved successfully
Testare l'autenticazione utilizzando curl
# 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"
Configura un feed in Google SecOps per importare i log di accesso di Microsoft Entra ID
Configurare il feed
- Vai a Impostazioni SIEM > Feed.
- Fai clic su Aggiungi nuovo feed.
- Nella pagina successiva, fai clic su Configura un singolo feed.
- Nel campo Nome feed, inserisci un nome per il feed (ad esempio,
Microsoft Entra ID Sign-In Logs). - Seleziona API di terze parti come Tipo di origine.
- Seleziona Microsoft Azure AD come Tipo di log.
- Fai clic su Avanti.
Configurare i parametri del feed
Specifica i valori per i seguenti parametri di input:
- ID client OAuth: l'ID applicazione (client) della registrazione dell'app.
- Client secret OAuth: il valore del client secret copiato in precedenza.
- ID tenant: l'ID tenant Microsoft della registrazione dell'app (formato UUID, ad esempio
0fc279f9-fe30-41be-97d3-abe1d7681418). API Full Path: URL dell'endpoint API REST Microsoft Graph:
graph.microsoft.com/v1.0/auditLogs/signInsEndpoint di autenticazione API: endpoint di autenticazione Microsoft Active Directory:
login.microsoftonline.comOpzioni avanzate:
- Nome feed: un valore precompilato che identifica il feed.
- Tipo di origine: API di terze parti (meccanismo per raccogliere i log in Google SecOps).
- Spazio dei nomi dell'asset: lo spazio dei nomi dell'asset a cui verrà associato il feed.
- Etichette di importazione: le etichette verranno aggiunte a tutti gli eventi di questo feed.
- Fai clic su Avanti.
Controlla la nuova configurazione del feed nella schermata Finalizza e poi fai clic su Invia.
Endpoint regionali
Per i deployment di Microsoft Entra ID nei cloud sovrani, utilizza gli endpoint regionali appropriati:
| Ambiente cloud | Percorso completo dell'API | Endpoint di autenticazione API |
|---|---|---|
| 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 |
| Cina (21Vianet) | microsoftgraph.chinacloudapi.cn/v1.0/auditLogs/signIns |
login.chinacloudapi.cn |
Tabella di mappatura UDM
| Campo log | Mappatura UDM | Logica |
|---|---|---|
activityDateTime |
principal.event_timestamp |
Analizzato dal campo activityDateTime. Se il campo non è nel formato previsto "aaaa-MM-ggTHH:mm:ss.SSSZ" o "ISO8601", il parser proverà altri formati come "MM/gg/aaaa HH:mm:ss A" o "MM/g/aaaa HH:mm:ss A". |
activityDisplayName |
security_result.summary |
Mappato direttamente da activityDisplayName. |
additionalDetails.0.value |
network.http.user_agent |
Mappato direttamente da additionalDetails.0.value. |
additionalDetails.1.key |
target.resource.attribute.labels.key |
Mappato direttamente da additionalDetails.1.key. |
additionalDetails.1.value |
target.resource.attribute.labels.value |
Mappato direttamente da additionalDetails.1.value. |
additionalInfo.[].Key |
network.http.user_agent, target.url |
Se Key è userAgent, mappa Value su network.http.user_agent e network.http.parsed_user_agent. Se Key è alertUrl, mappa Value su target.url. |
additionalInfo.[].Value |
network.http.user_agent, target.url |
Se Key è userAgent, mappa Value su network.http.user_agent e network.http.parsed_user_agent. Se Key è alertUrl, mappa Value su target.url. |
am_category |
metadata.description |
Mappato direttamente da am_category. |
am_tenantId |
metadata.product_deployment_id |
Mappato direttamente da am_tenantId. |
appId |
target.resource.attribute.labels.value |
Mappato direttamente da appId con la chiave di etichetta "ID app". |
appDisplayName |
target.application |
Mappato direttamente da appDisplayName. |
appliedConditionalAccessPolicies.[].displayName |
security_result.[].rule_name, about.[].user.user_display_name |
Mappato direttamente da appliedConditionalAccessPolicies.[].displayName. |
appliedConditionalAccessPolicies.[].enforcedGrantControls |
security_result.[].rule_labels.value |
Mappato direttamente da appliedConditionalAccessPolicies.[].enforcedGrantControls con la chiave di etichetta "applied_conditional_access_policies_enforced_grant_controls". |
appliedConditionalAccessPolicies.[].enforcedSessionControls |
security_result.[].rule_labels.value |
Mappato direttamente da appliedConditionalAccessPolicies.[].enforcedSessionControls con la chiave di etichetta "applied_conditional_access_policies_enforced_session_controls". |
appliedConditionalAccessPolicies.[].id |
security_result.[].rule_id, about.[].user.userid |
Mappato direttamente da appliedConditionalAccessPolicies.[].id. |
appliedConditionalAccessPolicies.[].result |
security_result.[].detection_fields.value, about.[].labels.value |
Mappato direttamente da appliedConditionalAccessPolicies.[].result con la chiave di etichetta "Risultato". |
authenticationDetails.[].authenticationMethod |
security_result.[].detection_fields.value |
Mappato direttamente da authenticationDetails.[].authenticationMethod con la chiave di etichetta "authenticationMethod". |
authenticationDetails.[].authenticationMethodDetail |
security_result.[].detection_fields.value |
Mappato direttamente da authenticationDetails.[].authenticationMethodDetail con la chiave di etichetta "authenticationMethodDetail". |
authenticationDetails.[].authenticationStepDateTime |
security_result.[].detection_fields.value |
Mappato direttamente da authenticationDetails.[].authenticationStepDateTime con la chiave di etichetta "authenticationStepDateTime". |
authenticationDetails.[].authenticationStepRequirement |
security_result.[].detection_fields.value |
Mappato direttamente da authenticationDetails.[].authenticationStepRequirement con la chiave di etichetta "authenticationStepRequirement". |
authenticationDetails.[].authenticationStepResultDetail |
security_result.[].detection_fields.value |
Mappato direttamente da authenticationDetails.[].authenticationStepResultDetail con la chiave di etichetta "authenticationStepResultDetail". |
authenticationDetails.[].succeeded |
security_result.action |
Se il valore è "true", allora ALLOW, altrimenti BLOCK. |
authenticationRequirement |
additional.fields.value.string_value |
Mappato direttamente da authenticationRequirement con la chiave di etichetta "AuthenticationRequirement". |
authenticationRequirementPolicies.[].detail |
security_result.detection_fields.value |
Mappato direttamente da authenticationRequirementPolicies.[].detail con la chiave di etichetta "dettaglio". |
authenticationRequirementPolicies.[].requirementProvider |
security_result.detection_fields.value |
Mappato direttamente da authenticationRequirementPolicies.[].requirementProvider con la chiave di etichetta "requirementProvider". |
callerIpAddress |
principal.ip, principal.asset.ip |
Mappato direttamente da callerIpAddress. |
category |
metadata.description |
Mappato direttamente da category. |
clientAppUsed |
principal.application |
Mappato direttamente da clientAppUsed. |
conditionalAccessStatus |
additional.fields.value.string_value |
Mappato direttamente da conditionalAccessStatus con la chiave di etichetta "conditionalAccessStatus". |
correlationId |
network.session_id, security_result.detection_fields.value |
Mappato direttamente da correlationId. Utilizzato anche come security_result.detection_fields.value con la chiave di etichetta "CorrelationId". |
createdDateTime |
when |
Il campo when è derivato dal campo createdDateTime. La data e l'ora vengono estratte dal campo createdDateTime utilizzando grok e poi combinate per formare il campo when. |
deviceDetail.browser |
network.http.user_agent |
Mappato direttamente da deviceDetail.browser. |
deviceDetail.deviceId |
principal.asset.asset_id, principal.asset_id |
Mappato direttamente da deviceDetail.deviceId e con il prefisso "ID dispositivo:". |
deviceDetail.displayName |
principal.asset.hostname |
Mappato direttamente da deviceDetail.displayName. |
deviceDetail.isCompliant |
principal.asset.attribute.labels.value |
Mappato direttamente da deviceDetail.isCompliant con la chiave di etichetta "isCompliant". |
deviceDetail.isManaged |
principal.asset.attribute.labels.value |
Mappato direttamente da deviceDetail.isManaged con la chiave di etichetta "isManaged". |
deviceDetail.operatingSystem |
principal.platform_version |
Mappato direttamente da deviceDetail.operatingSystem. |
deviceDetail.trustType |
principal.asset.attribute.labels.value |
Mappato direttamente da deviceDetail.trustType con la chiave di etichetta "trustType". |
durationMs |
additional.fields.value.string_value |
Mappato direttamente da durationMs con la chiave di etichetta "durationMs". |
event.id |
- | Non mappato secondo le istruzioni (punto 3). |
id |
metadata.product_log_id |
Mappato direttamente da id. |
identity |
target.user.user_display_name |
Mappato direttamente da identity se è diverso da userId e non è un indirizzo email. |
initiatedBy.user.displayName |
principal.user.user_display_name |
Mappato direttamente da initiatedBy.user.displayName. |
initiatedBy.user.id |
principal.user.userid, principal.user.windows_sid |
Mappato direttamente da initiatedBy.user.id. |
initiatedBy.user.ipAddress |
principal.ip, principal.asset.ip |
Mappato direttamente da initiatedBy.user.ipAddress. |
initiatedBy.user.userPrincipalName |
principal.user.email_addresses, principal.user.userid |
Mappato direttamente da initiatedBy.user.userPrincipalName. Se si tratta di un indirizzo email, viene mappato a email_addresses, altrimenti a userid. |
Level |
security_result.severity_details, level |
Mappato direttamente da Level. |
level |
security_result.severity_details, security_result.severity |
Mappato direttamente da level. Mappato anche su security_result.severity dopo la conversione in maiuscolo. Gestione speciale per i valori "Informazioni", "Informativo", "0", "4", "Avviso", "1", "3", "Errore", "2" e "Critico". |
location.city |
principal.location.city |
Mappato direttamente da location.city. |
location.countryOrRegion |
principal.location.country_or_region |
Mappato direttamente da location.countryOrRegion. |
location.geoCoordinates.altitude |
additional.fields.value.string_value |
Mappato direttamente da location.geoCoordinates.altitude con la chiave di etichetta "location_geoCoordinates_altitude". |
location.geoCoordinates.latitude |
principal.location.region_latitude, principal.location.region_coordinates.latitude |
Mappato direttamente da location.geoCoordinates.latitude. |
location.geoCoordinates.longitude |
principal.location.region_longitude, principal.location.region_coordinates.longitude |
Mappato direttamente da location.geoCoordinates.longitude. |
location.state |
principal.location.state |
Mappato direttamente da location.state. |
location |
principal.location.name |
Mappato direttamente da location. |
log_type |
metadata.log_type |
Mappato direttamente da log_type. |
networkLocationDetails.[].networkNames |
additional.fields.value.string_value |
Valori concatenati da networkLocationDetails.[].networkNames con la chiave di etichetta "networkName {index}". |
networkLocationDetails.[].networkType |
security_result.detection_fields.value, additional.fields.value.string_value |
Mappato direttamente da networkLocationDetails.[].networkType con la chiave di etichetta "networkType". Utilizzato anche come additional.fields.value.string_value con la chiave di etichetta "networkType {index}". |
operationName |
event_type |
Se operationName è "Attività di accesso", allora USER_LOGIN. Se operationName è "Aggiungi membro al gruppo", allora USER_CHANGE_PERMISSIONS. |
operationType |
security_result.action_details |
Mappato direttamente da operationType. |
properties.activity |
security_result.summary |
Mappato direttamente da properties.activity. |
properties.activityDateTime |
when |
Analizzato dal campo properties.activityDateTime. Se il campo non è nel formato previsto "aaaa-MM-ggTHH:mm:ss.SSSZ" o "ISO8601", il parser proverà altri formati come "MM/gg/aaaa HH:mm:ss A" o "MM/g/aaaa HH:mm:ss A". |
properties.activityDisplayName |
security_result.summary |
Mappato direttamente da properties.activityDisplayName. |
properties.additionalInfo |
network.http.user_agent, target.url |
Analizzato come JSON e, se la chiave è userAgent, mappa il valore a network.http.user_agent e network.http.parsed_user_agent. Se la chiave è alertUrl, mappa il valore su target.url. |
properties.appliedConditionalAccessPolicies.[].displayName |
security_result.[].rule_name |
Mappato direttamente da properties.appliedConditionalAccessPolicies.[].displayName. |
properties.appliedConditionalAccessPolicies.[].enforcedGrantControls |
security_result.[].rule_labels.value |
Mappato direttamente da properties.appliedConditionalAccessPolicies.[].enforcedGrantControls con la chiave di etichetta "applied_conditional_access_policies_enforced_grant_controls". |
properties.appliedConditionalAccessPolicies.[].enforcedSessionControls |
security_result.[].rule_labels.value |
Mappato direttamente da properties.appliedConditionalAccessPolicies.[].enforcedSessionControls con la chiave di etichetta "applied_conditional_access_policies_enforced_session_controls". |
properties.appliedConditionalAccessPolicies.[].id |
security_result.[].rule_id |
Mappato direttamente da properties.appliedConditionalAccessPolicies.[].id. |
properties.appliedConditionalAccessPolicies.[].result |
security_result.[].detection_fields.value |
Mappato direttamente da properties.appliedConditionalAccessPolicies.[].result con la chiave di etichetta "Risultato". |
properties.appId |
appId |
Mappato direttamente da properties.appId. |
properties.appDisplayName |
target.application |
Mappato direttamente da properties.appDisplayName. |
properties.authenticationDetails.[].authenticationMethod |
security_result.detection_fields.value |
Mappato direttamente da properties.authenticationDetails.[].authenticationMethod con la chiave di etichetta "authenticationMethod". |
properties.authenticationDetails.[].authenticationMethodDetail |
security_result.detection_fields.value |
Mappato direttamente da properties.authenticationDetails.[].authenticationMethodDetail con la chiave di etichetta "authenticationMethodDetail". |
properties.authenticationDetails.[].authenticationStepDateTime |
security_result.detection_fields.value |
Mappato direttamente da properties.authenticationDetails.[].authenticationStepDateTime con la chiave di etichetta "authenticationStepDateTime". |
properties.authenticationDetails.[].authenticationStepRequirement |
security_result.detection_fields.value |
Mappato direttamente da properties.authenticationDetails.[].authenticationStepRequirement con la chiave di etichetta "authenticationStepRequirement". |
properties.authenticationDetails.[].authenticationStepResultDetail |
security_result.detection_fields.value |
Mappato direttamente da properties.authenticationDetails.[].authenticationStepResultDetail con la chiave di etichetta "authenticationStepResultDetail". |
properties.authenticationRequirement |
additional.fields.value.string_value |
Mappato direttamente da properties.authenticationRequirement con la chiave di etichetta "AuthenticationRequirement". |
properties.authenticationRequirementPolicies.[].detail |
security_result.detection_fields.value |
Mappato direttamente da properties.authenticationRequirementPolicies.[].detail con la chiave di etichetta "dettaglio". |
properties.authenticationRequirementPolicies.[].requirementProvider |
security_result.detection_fields.value |
Mappato direttamente da properties.authenticationRequirementPolicies.[].requirementProvider con la chiave di etichetta "requirementProvider". |
properties.clientAppUsed |
principal.application |
Mappato direttamente da properties.clientAppUsed. |
properties.conditionalAccessStatus |
additional.fields.value.string_value |
Mappato direttamente da properties.conditionalAccessStatus con la chiave di etichetta "conditionalAccessStatus". |
properties.crossTenantAccessType |
additional.fields.value.string_value |
Mappato direttamente da properties.crossTenantAccessType con la chiave di etichetta "crossTenantAccessType". |
properties.detectedDateTime |
additional.fields.value.string_value |
Mappato direttamente da properties.detectedDateTime con la chiave di etichetta "detectedDateTime". |
properties.detectionTimingType |
additional.fields.value.string_value |
Mappato direttamente da properties.detectionTimingType con la chiave di etichetta "detectionTimingType". |
properties.homeTenantId |
additional.fields.value.string_value |
Mappato direttamente da properties.homeTenantId con la chiave di etichetta "homeTenantId". |
properties.id |
metadata.product_log_id |
Mappato direttamente da properties.id. |
properties.initiatedBy.user.displayName |
principal.user.user_display_name |
Mappato direttamente da properties.initiatedBy.user.displayName. |
properties.initiatedBy.user.id |
principal.user.windows_sid |
Mappato direttamente da properties.initiatedBy.user.id. |
properties.initiatedBy.user.ipAddress |
principal.ip, principal.asset.ip |
Mappato direttamente da properties.initiatedBy.user.ipAddress. |
properties.initiatedBy.user.userPrincipalName |
principal.user.email_addresses, principal.user.userid |
Mappato direttamente da properties.initiatedBy.user.userPrincipalName. Se si tratta di un indirizzo email, viene mappato a email_addresses, altrimenti a userid. |
properties.ipAddress |
principal.ip, principal.asset.ip |
Mappato direttamente da properties.ipAddress. |
properties.isGuest |
additional.fields.value.string_value |
Mappato direttamente da properties.isGuest con la chiave di etichetta "isGuest". |
properties.isDeleted |
additional.fields.value.string_value |
Mappato direttamente da properties.isDeleted con la chiave di etichetta "isDeleted". |
properties.isProcessing |
additional.fields.value.string_value |
Mappato direttamente da properties.isProcessing con la chiave di etichetta "isProcessing". |
properties.lastUpdatedDateTime |
additional.fields.value.string_value |
Mappato direttamente da properties.lastUpdatedDateTime con la chiave di etichetta "lastUpdatedDateTime". |
properties.location.city |
principal.location.city |
Mappato direttamente da properties.location.city. |
properties.location.countryOrRegion |
principal.location.country_or_region |
Mappato direttamente da properties.location.countryOrRegion. |
properties.location.geoCoordinates.latitude |
principal.location.region_latitude, principal.location.region_coordinates.latitude |
Mappato direttamente da properties.location.geoCoordinates.latitude. |
properties.location.geoCoordinates.longitude |
principal.location.region_longitude, principal.location.region_coordinates.longitude |
Mappato direttamente da properties.location.geoCoordinates.longitude. |
properties.location.state |
principal.location.state |
Mappato direttamente da properties.location.state. |
properties.networkLocationDetails.[].networkNames |
additional.fields.value.string_value |
Valori concatenati da properties.networkLocationDetails.[].networkNames con la chiave di etichetta "properties networkName {index}". |
properties.networkLocationDetails.[].networkType |
additional.fields.value.string_value |
Mappato direttamente da properties.networkLocationDetails.[].networkType con la chiave di etichetta "properties networkType {index}". |
properties.riskEventType |
additional.fields.value.string_value |
Mappato direttamente da properties.riskEventType con la chiave di etichetta "riskEventType". |
properties.riskLastUpdatedDateTime |
additional.fields.value.string_value |
Mappato direttamente da properties.riskLastUpdatedDateTime con la chiave di etichetta "riskLastUpdatedDateTime". |
properties.riskLevel |
additional.fields.value.string_value |
Mappato direttamente da properties.riskLevel con la chiave di etichetta "riskLevel". |
properties.riskLevelDuringSignIn |
additional.fields.value.string_value |
Mappato direttamente da properties.riskLevelDuringSignIn con la chiave di etichetta "riskLevelDuringSignIn". |
properties.riskState |
additional.fields.value.string_value |
Mappato direttamente da properties.riskState con la chiave di etichetta "riskState". |
properties.riskDetail |
additional.fields.value.string_value |
Mappato direttamente da properties.riskDetail con la chiave di etichetta "riskDetail". |
properties.riskType |
additional.fields.value.string_value |
Mappato direttamente da properties.riskType con la chiave di etichetta "riskType". |
properties.source |
additional.fields.value.string_value |
Mappato direttamente da properties.source con la chiave di etichetta "source". |
properties.targetResources.0.id |
target.user.product_object_id |
Mappato direttamente da properties.targetResources.0.id. |
properties.targetResources.modifiedProperties.0.newValue |
target.group.product_object_id |
Mappato direttamente da properties.targetResources.modifiedProperties.0.newValue. |
properties.tokenIssuerType |
additional.fields.value.string_value |
Mappato direttamente da properties.tokenIssuerType con la chiave di etichetta "tokenIssuerType". |
properties.userAgent |
network.http.user_agent, network.http.parsed_user_agent |
Mappato direttamente da properties.userAgent. |
properties.userDisplayName |
target.user.user_display_name |
Mappato direttamente da properties.userDisplayName. |
properties.userId |
target.user.product_object_id |
Mappato direttamente da properties.userId. |
properties.userPrincipalName |
target.user.userid, target.user.email_addresses |
Mappato direttamente da properties.userPrincipalName. Se si tratta di un indirizzo email, viene mappato a email_addresses, altrimenti a userid. |
result |
security_result.action, security_result.action_details |
Se result è "success", allora ALLOW. |
resultDescription |
security_result.description |
Mappato direttamente da resultDescription. |
resultSignature |
additional.fields.value.string_value |
Mappato direttamente da resultSignature con la chiave di etichetta "resultSignature". |
resultType |
security_result.rule_id, action, security_result.summary |
Se resultType è "0", allora ALLOW e "Accesso riuscito". Altrimenti, BLOCK e "Failed login occurred". |
resourceId |
target.resource.id, target.resource.product_object_id |
Mappato direttamente da resourceId. |
resourceDisplayName |
target.resource.name, appDisplayName |
Mappato direttamente da resourceDisplayName. |
riskDetail |
additional.fields.value.string_value |
Mappato direttamente da riskDetail con la chiave di etichetta "riskDetail". |
riskEventTypes.[]. |
additional.fields.value.string_value, additional.fields.value.list_value.values.string_value |
I valori vengono aggiunti a un elenco con la chiave "riskEventTypes" in additional.fields. Inoltre, ogni valore viene aggiunto come campo separato con la chiave "riskEventType" in additional.fields. |
riskEventTypes_v2.[]. |
additional.fields.value.list_value.values.string_value |
I valori vengono aggiunti a un elenco con la chiave "riskEventTypes_v2" in additional.fields. |
riskLevelAggregated |
additional.fields.value.string_value |
Mappato direttamente da riskLevelAggregated con la chiave di etichetta "riskLevelAggregated". |
riskLevelDuringSignIn |
additional.fields.value.string_value |
Mappato direttamente da riskLevelDuringSignIn con la chiave di etichetta "riskLevelDuringSignIn". |
riskState |
additional.fields.value.string_value |
Mappato direttamente da riskState con la chiave di etichetta "riskState". |
status.additionalDetails |
security_result.description |
Mappato direttamente da status.additionalDetails. |
status.errorCode |
security_result.rule_id, errorCode |
Mappato direttamente da status.errorCode. |
target.displayName |
resourceDisplayName |
Mappato direttamente da target.displayName. |
target.id |
resourceId |
Mappato direttamente da target.id. |
target.modifiedProperties.[].displayName |
target.resource.attribute.labels.key |
Mappato direttamente da target.modifiedProperties.[].displayName. |
target.modifiedProperties.[].newValue |
target.resource.attribute.labels.value, target.resource.product_object_id |
Mappato direttamente da target.modifiedProperties.[].newValue. |
target.modifiedProperties.[].oldValue |
target.resource.attribute.labels.value |
Mappato direttamente da target.modifiedProperties.[].oldValue. |
target.type |
target.resource.type |
Mappato direttamente da target.type. |
tenantId |
metadata.product_deployment_id |
Mappato direttamente da tenantId. |
time |
when |
Il campo when è derivato dal campo time. La data e l'ora vengono estratte dal campo time utilizzando grok e poi combinate per formare il campo when. |
userAgent |
network.http.user_agent, network.http.parsed_user_agent |
Mappato direttamente da userAgent. |
userDisplayName |
target.user.user_display_name |
Mappato direttamente da userDisplayName. |
userId |
target.user.product_object_id |
Mappato direttamente da userId. |
userPrincipalName |
target.user.userid, principal.administrative_domain, target.user.email_addresses |
Mappato direttamente da userPrincipalName. Se si tratta di un indirizzo email, viene mappato a email_addresses e la parte del dominio viene estratta e mappata a principal.administrative_domain. In caso contrario, viene mappato a userid. |
| (Parser Logic) | event.idm.is_alert, event.idm.is_significant |
Impostato su true se il livello è "Critico". |
| (Parser Logic) | event.idm.read_only_udm.metadata.event_type |
Imposta su "USER_LOGIN" se has_target_user è "true". Imposta "USER_UNCATEGORIZED" se has_principal_user è "true". Imposta "STATUS_UPDATE" se has_principal è "true". Imposta "GENERIC_EVENT" in caso contrario. |
| (Parser Logic) | event.idm.read_only_udm.metadata.vendor_name |
Imposta "Microsoft". |
| (Parser Logic) | event.idm.read_only_udm.metadata.product_name |
Imposta su "Azure AD". |
| (Parser Logic) | event.idm.read_only_udm.extensions.auth.type |
Imposta su "SSO". |
| (Parser Logic) | event.idm.read_only_udm.extensions.auth.mechanism |
Imposta su "INTERACTIVE" se isInteractive è "true". In caso contrario, imposta il valore su "MECHANISM_OTHER". |
| (Parser Logic) | security_result.action |
Imposta su ALLOW se il risultato è positivo. |
| (Parser Logic) | security_result.action |
Imposta su ALLOW se resultType è 0. |
| (Parser Logic) | security_result.action |
Imposta su BLOCK se resultType non è 0 e non è "". |
| (Parser Logic) | security_result.category |
Impostato su "AUTH_VIOLATION" se resultType non è 0 e non è "". |
| (Parser Logic) | security_result.description |
Imposta "Iscrizione al gruppo modificata" se operationName è "Aggiungi membro al gruppo" e il risultato è "successo". |
| (Parser Logic) | security_result.priority |
Imposta "MEDIUM_PRIORITY" se properties.riskLevelDuringSignIn è "medium". |
| (Parser Logic) | security_result.summary |
Imposta "Accesso riuscito" se resultType è 0. |
| (Parser Logic) | security_result.summary |
Impostato su "Failed login occurred" (Tentativo di accesso non riuscito) se resultType non è 0 e non è "". |
| (Parser Logic) | security_result.summary |
Imposta su properties.activityDisplayName se esiste. |
| (Parser Logic) | security_result.severity |
Imposta su INFORMATIONAL se il livello è "Information", "Informational", "0" o "4". Imposta il valore su MEDIUM se il livello è "Avviso", "1" o "3". Impostato su ERROR se il livello è "Error" o "2". Impostato su CRITICAL se il livello è "Critico". |
| (Parser Logic) | security_result.severity |
Imposta su ERROR se resultType non è 0 e non è "". |
Log delle modifiche
Visualizza il log delle modifiche per questo parser
Hai bisogno di ulteriore assistenza? Ricevi risposte dai membri della community e dai professionisti di Google SecOps.