Raccogliere i log di accesso di Microsoft Entra ID

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:

  • Un'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 amministrativo:
    • 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 Entra ID tramite Azure Event Hub con Capture abilitato, che scrive i dati in Azure Blob Storage. Google SecOps inserisce poi i log da Blob Storage utilizzando il tipo di feed Azure Blob Storage V2.

Configura l'account di archiviazione di Azure

Crea un account di archiviazione

  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 Seleziona esistente o crea nuovo
    Nome account di archiviazione Inserisci un nome univoco (ad esempio, secopsaadsignin).
    Regione Seleziona la regione più vicina al tuo spazio dei nomi Event Hub
    Prestazioni Standard (consigliato)
    Ridondanza LRS (Locally redundant storage) o GRS (Geo-redundant storage)
  4. Fai clic su Review + create (Rivedi e crea).

  5. Rivedi la panoramica e fai clic su Crea.

  6. Attendi il completamento del deployment.

Recuperare le credenziali dell'account di archiviazione

  1. Vai all'account di archiviazione che hai creato.
  2. Nel riquadro di navigazione a sinistra, seleziona Chiavi di accesso in Sicurezza e networking.
  3. Fai clic su Mostra chiavi.
  4. Copia e salva quanto segue:
    • Nome account di archiviazione
    • Tasto 1 o Tasto 2: la chiave di accesso condivisa.

Crea lo spazio dei nomi dell'hub di eventi e l'hub di eventi

Crea spazio dei nomi dell'hub eventi

  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 lo stesso gruppo di risorse dell'account di archiviazione
    Nome dello spazio dei nomi Inserisci un nome univoco (ad esempio, secops-entraid-signin).
    Località Seleziona la stessa regione del tuo account di archiviazione
    Livello di prezzo Standard (obbligatorio per l'acquisizione dell'hub eventi)
  4. Fai clic su Rivedi e crea, quindi su Crea.

  5. Attendi il completamento del deployment.

Crea hub eventi

  1. Vai allo spazio dei nomi dell'hub di eventi che hai creato.
  2. Fai clic su + Event Hub in alto.
  3. Fornisci i seguenti dettagli di configurazione:
    • Nome: inserisci un nome (ad esempio, entraid-signin-logs).
    • Conteggio partizioni: 2 (valore predefinito, aumenta per una velocità effettiva maggiore).
    • Criterio di pulizia: elimina.
    • Tempo di conservazione (ore): 24 (minimo, aumenta se necessario per la resilienza).
  4. Fai clic su Rivedi e crea, quindi su Crea.

Abilitare Event Hub Capture

  1. Vai all'hub eventi che hai creato (all'interno dello spazio dei nomi).
  2. Nel menu di navigazione a sinistra, seleziona Acquisizione.
  3. Imposta Acquisizione su On.
  4. Fornisci i seguenti dettagli di configurazione:

    Impostazione Valore
    Intervallo di tempo (minuti) 5 (o meno per dati quasi in tempo reale)
    Finestra delle dimensioni (MB) 300
    Capture Provider Azure Blob Storage
    Sottoscrizione Azure Seleziona il tuo abbonamento
    Account di archiviazione Seleziona l'account di archiviazione che hai creato.
    Contenitore blob Crea o seleziona un contenitore (ad esempio entraid-signin-capture).
  5. Fai clic su Salva.

Configura le impostazioni di diagnostica di Entra ID

  1. Nel portale di Azure, cerca Microsoft Entra ID.
  2. Nel riquadro di navigazione a sinistra, vai a Monitoraggio e integrità > Impostazioni di diagnostica.
  3. Fai clic su Aggiungi impostazione 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 (facoltativo, consigliato).
      • ServicePrincipalSignInLogs: accessi dell'entità servizio (facoltativo).
      • ManagedIdentitySignInLogs: accessi con identità gestita (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 hub di eventi: seleziona l'hub di eventi che hai creato (ad esempio, entraid-signin-logs).
    • Nome policy dell'hub eventi: seleziona RootManageSharedAccessKey.
  5. Fai clic su Salva.

Configura i feed

Esistono due diversi punti di accesso per configurare i feed nella piattaforma Google SecOps:

  • Impostazioni SIEM > Feed > Aggiungi nuovo feed
  • Hub dei contenuti > Pacchetti di contenuti > Inizia

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

  1. Fai clic sul pacchetto Azure Platform.
  2. Individua il tipo di log Azure AD.
  3. Specifica i valori per i seguenti campi:

    • Tipo di origine: Microsoft Azure Blob Storage V2
    • URI di Azure: inserisci l'URL dell'endpoint del servizio BLOB con il percorso del container di acquisizione:

      https://<storage-account>.blob.core.windows.net/entraid-signin-capture/
      

      Sostituisci <storage-account> con il nome del tuo account di archiviazione Azure.

    • Opzione di eliminazione della fonte: seleziona l'opzione di eliminazione in base alle tue preferenze:

      • Mai: non elimina mai i file dopo i trasferimenti.
      • Elimina file trasferiti: elimina i file dopo il trasferimento riuscito.
      • Elimina file trasferiti e directory vuote: elimina i file e le directory vuote dopo il trasferimento riuscito.
    • Età massima del file: includi i file modificati nell'ultimo numero di giorni. Il valore predefinito è 180 giorni.

    • Chiave condivisa: inserisci il valore della chiave di accesso condivisa dall'account di archiviazione.

    • Spazio dei nomi dell'asset: lo spazio dei nomi dell'asset.

    • Etichette di importazione: l'etichetta da applicare agli eventi di questo feed.

  4. Fai clic su Crea feed.

Dopo aver creato il feed, potrebbero essere necessari 5-10 minuti prima che i log inizino a essere visualizzati in Google SecOps.

Per ulteriori informazioni sulla configurazione di più feed per diversi tipi di log all'interno di questa famiglia di prodotti, consulta Configura i feed per prodotto.

Per saperne di più sui feed di Google Security Operations, consulta la documentazione sui feed di Google Security Operations. Per informazioni sui requisiti per ogni tipo di feed, vedi Configurazione dei feed per tipo.

Configura il firewall di Azure Storage (se abilitato)

Se il tuo account di archiviazione Azure utilizza un firewall, devi aggiungere gli intervalli IP di Google SecOps.

  1. Nel portale Azure, vai al tuo account di archiviazione.
  2. Seleziona Networking in Sicurezza e networking.
  3. In Firewall e reti virtuali, seleziona Attivato da reti virtuali e indirizzi IP selezionati.
  4. Nella sezione Firewall, in Intervallo di indirizzi, fai clic su + Aggiungi intervallo IP.
  5. Aggiungi ogni intervallo IP di Google SecOps in notazione CIDR.
  6. Fai clic su Salva.

Metodo 2: API di terze parti

Questo metodo utilizza l'API Microsoft Graph per recuperare i log di accesso di Entra ID direttamente dal tuo tenant Microsoft.

Configurare 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 amministrativo 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 Azure AD

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 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à di 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 i feed

Esistono due diversi punti di accesso per configurare i feed nella piattaforma Google SecOps:

  • Impostazioni SIEM > Feed > Aggiungi nuovo feed
  • Hub dei contenuti > Pacchetti di contenuti > Inizia

Configura un feed in Google SecOps per importare i log di accesso di Microsoft Azure AD

  1. Fai clic sul pacchetto Azure Platform.
  2. Individua il tipo di log Azure AD.
  3. Specifica i valori per i seguenti campi:

    • Tipo di origine: API di terze parti (consigliato)
    • 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.
    • 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.
  4. Fai clic su Crea feed.

Dopo aver creato il feed, i dati contestuali verranno recuperati periodicamente. Potrebbero essere necessarie fino a 24 ore prima che la snapshot iniziale della directory venga visualizzata in Google SecOps.

Per ulteriori informazioni sulla configurazione di più feed per diversi tipi di log all'interno di questa famiglia di prodotti, consulta Configura i feed per prodotto.

Per saperne di più sui feed di Google Security Operations, consulta la documentazione sui feed di Google Security Operations. Per informazioni sui requisiti per ogni tipo di feed, vedi Configurazione dei feed per tipo. Se riscontri problemi durante la creazione dei feed, contatta l'assistenza di Google Security Operations.

Endpoint regionali

Per i deployment di Microsoft Azure AD 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 Logic
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 a 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". In caso contrario, 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 "USER_LOGIN" se has_target_user è "true". Imposta "USER_UNCATEGORIZED" se has_principal_user è "true". Imposta su "STATUS_UPDATE" se has_principal è "true". In caso contrario, impostalo su "GENERIC_EVENT".
(Parser Logic) event.idm.read_only_udm.metadata.vendor_name Imposta su "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 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 Impostato su ERROR se resultType non è 0 e non è "".

Hai bisogno di ulteriore assistenza? Ricevi risposte dai membri della community e dai professionisti di Google SecOps.