Raccogliere i log di accesso di Microsoft Entra ID (in precedenza Azure Active Directory)

Versione parser: 26.0

Supportato in:

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).

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.

  1. Nel portale Azure, cerca Event Hubs.
  2. Fai clic su + Crea.
  3. 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)
  4. Fai clic su Review + create (Rivedi e crea).

  5. Rivedi la panoramica e fai clic su Crea.

  6. Attendi il completamento del deployment (1-2 minuti).

Crea hub eventi

  1. Dopo il deployment dello spazio dei nomi, vai allo spazio dei nomi dell'hub di evento.
  2. Nel menu di navigazione a sinistra, seleziona Hub eventi in Entità.
  3. Fai clic su + Event Hub.
  4. 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)
  5. 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.

  1. Vai allo spazio dei nomi dell'hub di evento.
  2. Nel menu di navigazione a sinistra, seleziona Criteri di accesso condiviso in Impostazioni.
  3. Fai clic sulla policy predefinita RootManageSharedAccessKey.
  4. Copia la stringa di connessione - chiave primaria.
  5. 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

  1. Vai all'hub di evento (non allo spazio dei nomi).
  2. Nel menu di navigazione a sinistra, seleziona Criteri di accesso condiviso in Impostazioni.
  3. Fai clic su + Aggiungi per creare una nuova policy.
  4. Fornisci i seguenti dettagli di configurazione:
    • Nome criterio: inserisci un nome descrittivo (ad esempio chronicle-read).
    • Autorizzazioni: seleziona Ascolta (accesso di sola lettura)
  5. Fai clic su Crea.
  6. Fai clic sulla policy appena creata.
  7. Copia la stringa di connessione - chiave primaria.
  8. Salva questa stringa di connessione in modo sicuro.

Configurare le impostazioni di diagnostica di Microsoft Entra ID

  1. Accedi al centro di amministrazione di Microsoft Entra come amministratore della sicurezza o ruolo superiore.
  2. Vai a Entra ID > Monitoraggio e integrità > Impostazioni di diagnostica.
  3. Fai clic su + Aggiungi impostazione di diagnostica.
  4. 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.
  5. 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

  1. Nel portale Azure, cerca Account di archiviazione.
  2. Fai clic su + Crea.
  3. 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)
  4. Fai clic su Review + create (Rivedi e crea).

  5. Fai clic su Crea.

Crea contenitore blob

  1. Vai all'account di archiviazione che hai creato.
  2. Nel riquadro di navigazione a sinistra, seleziona Container nella sezione Archiviazione dati.
  3. Fai clic su + Contenitore.
  4. Fornisci i seguenti dettagli di configurazione:
    • Nome: inserisci checkpoints
    • Livello di accesso pubblico: privato (nessun accesso anonimo)
  5. Fai clic su Crea.

Recuperare le credenziali dell'account di archiviazione

  1. Nell'account di archiviazione, seleziona Chiavi di accesso in Sicurezza e networking.
  2. Fai clic su Mostra chiavi.
  3. 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.

  1. Vai all'hub di evento (non allo spazio dei nomi).
  2. Nel menu di navigazione a sinistra, seleziona Gruppi di consumatori in Entità.
  3. Fai clic su + Gruppo di consumatori.
  4. Fornisci i seguenti dettagli di configurazione:
    • Nome: inserisci un nome descrittivo (ad esempio, chronicle)
  5. Fai clic su Crea.

Configura un feed in Google SecOps per importare i log di accesso di Microsoft Entra ID

  1. Vai a Impostazioni SIEM > Feed.
  2. Fai clic su Aggiungi nuovo feed.
  3. Nella pagina successiva, fai clic su Configura un singolo feed.
  4. Nel campo Nome feed, inserisci un nome per il feed (ad esempio, Microsoft Entra ID Sign-In Logs - Event Hub).
  5. Seleziona Microsoft Azure Event Hub come Tipo di origine.
  6. Seleziona Microsoft Azure AD come Tipo di log.
  7. Fai clic su Avanti.
  8. 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.

    • Gruppo di consumatori (facoltativo): inserisci il nome del gruppo di consumatori.

    • Lascia vuoto per utilizzare il gruppo di consumatori $Default predefinito.

    • 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.

  9. Fai clic su Avanti.

  10. 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

  1. Vai a Impostazioni SIEM > Feed.
  2. Fai clic su Aggiungi nuovo feed.
  3. Prendi nota degli intervalli IP visualizzati nell'interfaccia di creazione dei feed.
  4. 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à:

  1. Nel Centro di amministrazione Microsoft Entra, vai a Protezione > Accesso condizionale > Posizioni denominate.
  2. Fai clic su + Nuova posizione.
  3. 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.
  4. Fai clic su Crea.
  5. Vai a Accesso condizionale > Norme.
  6. Per tutte le policy che si applicano alle identità dei workload, configura un'esclusione per la località denominata Google SecOps IP Ranges o per il service principal specifico.

Configurare l'accesso all'API Microsoft Entra ID

Crea registrazione app

  1. Accedi al centro di amministrazione Microsoft Entra o al portale Azure.
  2. Vai ad Identità > Applicazioni > Registrazioni app.
  3. Fai clic su Nuova registrazione.
  4. 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).
  5. Fai clic su Register (Registrati).

  6. 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:

  1. Nella registrazione dell'app, vai ad API permissions (Autorizzazioni API).
  2. Fai clic su Aggiungi un'autorizzazione.
  3. Seleziona Microsoft Graph > Autorizzazioni applicazione.
  4. 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.
  5. Fai clic su Aggiungi autorizzazioni.
  6. Fai clic su Concedi il consenso amministratore per [La tua organizzazione].
  7. 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

  1. Vai a Certificates & secrets (Certificati e secret).
  2. Fai clic su Nuovo segreto client.
  3. Fornisci i seguenti dettagli di configurazione:

    • Descrizione: inserisci un nome descrittivo (ad esempio, Google SecOps Feed).
    • Scade: seleziona un periodo di scadenza.
  4. Fai clic su Aggiungi.

  5. 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

  1. Vai a Impostazioni SIEM > Feed.
  2. Fai clic su Aggiungi nuovo feed.
  3. Nella pagina successiva, fai clic su Configura un singolo feed.
  4. Nel campo Nome feed, inserisci un nome per il feed (ad esempio, Microsoft Entra ID Sign-In Logs).
  5. Seleziona API di terze parti come Tipo di origine.
  6. Seleziona Microsoft Azure AD come Tipo di log.
  7. 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/signIns
    
  • Endpoint di autenticazione API: endpoint di autenticazione Microsoft Active Directory:

    login.microsoftonline.com
    
  • Opzioni 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.
  1. Fai clic su Avanti.
  2. 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.