Raccogliere i log di Microsoft Azure AD
Questo documento descrive come raccogliere i log di Microsoft Azure Active Directory (AD) impostando un feed di Google Security Operations.
Azure Active Directory (AZURE_AD
) ora si chiama Microsoft Entra ID. Gli audit log di Azure AD
(AZURE_AD_AUDIT
) ora sono audit log di Microsoft Entra ID.
Per ulteriori informazioni, consulta Importazione dei dati in Google Security Operations.
Un'etichetta di importazione identifica l'analizzatore sintattico che normalizza i dati dei log non elaborati in formato UDM strutturato.
Prima di iniziare
Per completare le attività in questa pagina, assicurati di disporre di quanto segue:
- Un abbonamento Azure a cui puoi accedere.
- Un ruolo di amministratore globale o di amministratore di Azure AD.
- Un tenant Azure AD in Azure.
Configurare Azure AD
- Accedi al portale Azure.
- Vai a Home > Registrazione app, seleziona un'applicazione registrata o registra un'applicazione se non ne hai ancora creata una.
- Per registrare un'applicazione, nella sezione Registrazione app, fai clic su Nuova registrazione.
- Nel campo Nome, fornisci il nome visualizzato per l'applicazione.
- Nella sezione Tipi di account supportati, seleziona l'opzione richiesta per specificare chi può utilizzare l'applicazione o accedere all'API.
- Fai clic su Registrati.
- Vai alla pagina Panoramica e copia l'ID applicazione (client) e l'ID directory (tenant), necessari per configurare il feed di Google Security Operations.
- Fai clic su Autorizzazioni API.
- Fai clic su Aggiungi un'autorizzazione e seleziona Microsoft Graph nel nuovo riquadro.
- Fai clic su Autorizzazioni applicazione.
- Seleziona le autorizzazioni AuditLog.Read.All, Directory.Read.All e SecurityEvents.Read.All. Assicurati che le autorizzazioni siano Autorizzazioni app e non Autorizzazioni delegate.
- Fai clic su Concedi il consenso amministratore per la directory predefinita. Le applicazioni sono autorizzate a chiamare le API quando gli utenti o gli amministratori concedono le autorizzazioni nell'ambito della procedura di consenso.
- Vai a Impostazioni > Gestisci.
- Fai clic su Certificati e secret.
- Fai clic su Nuovo segreto client. Nel campo Valore viene visualizzato il client secret.
- Copia il valore del client secret. Il valore viene visualizzato solo al momento della creazione ed è necessario per la registrazione dell'app Azure e per configurare il feed di Google Security Operations.
Configura un feed in Google Security Operations per importare i log di Azure AD
- Seleziona Impostazioni SIEM > Feed.
- Fai clic su Aggiungi nuovo.
- Inserisci un nome univoco per il nome del feed.
- Seleziona API di terze parti come Tipo di origine.
- Seleziona Azure AD come Tipo di log.
- Fai clic su Avanti.
- Configura i seguenti parametri di input obbligatori:
- ID client OAuth: specifica l'ID client ottenuto in precedenza.
- Client secret OAuth: specifica il client secret ottenuto in precedenza.
- ID tenant: specifica l'ID tenant ottenuto in precedenza.
- Fai clic su Avanti e poi su Invia.
Per saperne di più sui feed di Google Security Operations, consulta la documentazione dei feed di Google Security Operations. Per informazioni sui requisiti per ciascun tipo di feed, consulta Configurazione dei feed per tipo. Se riscontri problemi durante la creazione dei feed, contatta l'assistenza di Google Security Operations.
Riferimento alla mappatura dei campi
Questo codice dell'analizzatore sintattico trasforma i log non elaborati di Azure AD in formato JSON in un modello dei dati unificato (UDM). Innanzitutto, normalizza i dati rimuovendo i campi non necessari e poi estrae le informazioni pertinenti come dettagli utente, timestamp e specifiche degli eventi, mappandole ai campi UDM corrispondenti per una rappresentazione e un'analisi coerenti.
Tabella di mappatura UDM
Campo log | Mappatura UDM | Logica |
---|---|---|
activityDateTime | read_only_udm.metadata.event_timestamp.seconds | Il valore viene estratto dal campo activityDateTime e convertito in secondi dall'epoca. |
activityDisplayName | read_only_udm.security_result.summary | Il valore viene mappato direttamente dal campo activityDisplayName . |
additionalDetails.0.value | read_only_udm.network.http.user_agent | Il valore viene mappato direttamente dal campo additionalDetails.0.value . |
additionalDetails.1.key | read_only_udm.target.resource.attribute.labels.key | Il valore viene mappato direttamente dal campo additionalDetails.1.key . |
additionalDetails.1.value | read_only_udm.target.resource.attribute.labels.value | Il valore viene mappato direttamente dal campo additionalDetails.1.value . |
am_category | read_only_udm.metadata.description | Il valore viene mappato direttamente dal campo am_category . |
am_tenantId | read_only_udm.metadata.product_deployment_id | Il valore viene mappato direttamente dal campo am_tenantId . |
appDisplayName | read_only_udm.target.application | Il valore viene mappato direttamente dal campo appDisplayName . Se appDisplayName è vuoto, il valore viene preso da resourceDisplayName . |
appId | read_only_udm.target.resource.attribute.labels.value | Il valore viene mappato direttamente dal campo appId . |
appliedConditionalAccessPolicies.displayName | read_only_udm.about.user.user_display_name | Il valore viene mappato direttamente dal campo appliedConditionalAccessPolicies.displayName . |
appliedConditionalAccessPolicies.enforcedGrantControls | read_only_udm.security_result.rule_labels.value | Il valore viene mappato direttamente dal campo appliedConditionalAccessPolicies.enforcedGrantControls . |
appliedConditionalAccessPolicies.enforcedSessionControls | read_only_udm.security_result.rule_labels.value | Il valore viene mappato direttamente dal campo appliedConditionalAccessPolicies.enforcedSessionControls . |
appliedConditionalAccessPolicies.id | read_only_udm.about.user.userid | Il valore viene mappato direttamente dal campo appliedConditionalAccessPolicies.id . |
appliedConditionalAccessPolicies.result | read_only_udm.about.labels.value | Il valore viene mappato direttamente dal campo appliedConditionalAccessPolicies.result . |
authenticationDetails.authenticationMethod | read_only_udm.security_result.detection_fields.value | Il valore viene mappato direttamente dal campo authenticationDetails.authenticationMethod . |
authenticationDetails.authenticationMethodDetail | read_only_udm.security_result.detection_fields.value | Il valore viene mappato direttamente dal campo authenticationDetails.authenticationMethodDetail . |
authenticationDetails.authenticationStepDateTime | read_only_udm.security_result.detection_fields.value | Il valore viene mappato direttamente dal campo authenticationDetails.authenticationStepDateTime . |
authenticationDetails.authenticationStepRequirement | read_only_udm.security_result.detection_fields.value | Il valore viene mappato direttamente dal campo authenticationDetails.authenticationStepRequirement . |
authenticationDetails.authenticationStepResultDetail | read_only_udm.security_result.detection_fields.value | Il valore viene mappato direttamente dal campo authenticationDetails.authenticationStepResultDetail . |
authenticationProcessingDetails.key | read_only_udm.additional.fields.key | Il valore viene mappato direttamente dal campo authenticationProcessingDetails.key , con il prefisso "authenticationProcessingDetails - ". |
authenticationProcessingDetails.value | read_only_udm.additional.fields.value.string_value | Il valore viene mappato direttamente dal campo authenticationProcessingDetails.value . |
callerIpAddress | read_only_udm.principal.ip | Il valore viene mappato direttamente dal campo callerIpAddress . |
callerIpAddress | read_only_udm.principal.asset.ip | Il valore viene mappato direttamente dal campo callerIpAddress . |
categoria | read_only_udm.metadata.description | Il valore viene mappato direttamente dal campo category . |
clientAppUsed | read_only_udm.principal.application | Il valore viene mappato direttamente dal campo clientAppUsed . |
conditionalAccessStatus | read_only_udm.additional.fields.value.string_value | Il valore viene mappato direttamente dal campo conditionalAccessStatus . |
correlationId | read_only_udm.network.session_id | Il valore viene mappato direttamente dal campo correlationId . |
correlationId | read_only_udm.security_result.detection_fields.value | Il valore viene mappato direttamente dal campo correlationId . |
createdDateTime | read_only_udm.metadata.event_timestamp.seconds | Il valore viene estratto dal campo createdDateTime e convertito in secondi dall'epoca. |
deviceDetail.browser | read_only_udm.network.http.user_agent | Il valore viene mappato direttamente dal campo deviceDetail.browser . |
deviceDetail.deviceId | read_only_udm.principal.asset.asset_id | Il valore viene mappato direttamente dal campo deviceDetail.deviceId , preceduto dal prefisso "ID dispositivo:". |
deviceDetail.deviceId | read_only_udm.principal.asset_id | Il valore viene mappato direttamente dal campo deviceDetail.deviceId , preceduto dal prefisso "ID dispositivo:". |
deviceDetail.displayName | read_only_udm.principal.asset.hostname | Il valore viene mappato direttamente dal campo deviceDetail.displayName . |
deviceDetail.isCompliant | read_only_udm.principal.asset.attribute.labels.value | Il valore viene mappato direttamente dal campo deviceDetail.isCompliant . |
deviceDetail.isManaged | read_only_udm.principal.asset.attribute.labels.value | Il valore viene mappato direttamente dal campo deviceDetail.isManaged . |
deviceDetail.operatingSystem | read_only_udm.principal.platform_version | Il valore viene mappato direttamente dal campo deviceDetail.operatingSystem . |
deviceDetail.trustType | read_only_udm.principal.asset.attribute.labels.value | Il valore viene mappato direttamente dal campo deviceDetail.trustType . |
durationMs | read_only_udm.additional.fields.value.string_value | Il valore viene mappato direttamente dal campo durationMs . |
errorCode | read_only_udm.security_result.rule_id | Il valore viene mappato direttamente dal campo errorCode . |
identity | read_only_udm.target.user.user_display_name | Il valore viene mappato direttamente dal campo identity se è diverso da userId e non corrisponde a un pattern di indirizzo email. |
initiatedBy.user.displayName | read_only_udm.principal.user.user_display_name | Il valore viene mappato direttamente dal campo initiatedBy.user.displayName . |
initiatedBy.user.id | read_only_udm.principal.user.userid | Il valore viene mappato direttamente dal campo initiatedBy.user.id . |
initiatedBy.user.ipAddress | read_only_udm.principal.ip | Il valore viene mappato direttamente dal campo initiatedBy.user.ipAddress . |
initiatedBy.user.ipAddress | read_only_udm.principal.asset.ip | Il valore viene mappato direttamente dal campo initiatedBy.user.ipAddress . |
initiatedBy.user.userPrincipalName | read_only_udm.principal.user.email_addresses | Il valore viene mappato direttamente dal campo initiatedBy.user.userPrincipalName se corrisponde a un pattern di indirizzo email. |
ipAddress | read_only_udm.principal.ip | Il valore viene estratto dal campo ipAddress utilizzando un pattern grok per estrarre l'indirizzo IP. |
ipAddress | read_only_udm.principal.asset.ip | Il valore viene estratto dal campo ipAddress utilizzando un pattern Grok per estrarre l'indirizzo IP. |
isInteractive | read_only_udm.extensions.auth.mechanism | Il valore viene mappato a "INTERACTIVE" se isInteractive è "true", altrimenti viene mappato a "MECHANISM_OTHER". |
isInteractive | read_only_udm.security_result.detection_fields.value | Il valore viene mappato direttamente dal campo isInteractive . |
livello | read_only_udm.security_result.severity | Il valore viene mappato dal campo level in base alla seguente logica: * "Informazioni", "Informazioni", "0", "4" sono mappati a "INFORMATIONAL". * "Avviso", "1", "3" sono mappati a "MEDIO". * "Error", "2" sono mappati a "ERROR". * "Critica", "CRITICAL", "critical" sono mappati a "CRITICAL". |
livello | read_only_udm.security_result.severity_details | Il valore viene mappato direttamente dal campo level . |
location.city | read_only_udm.principal.location.city | Il valore viene mappato direttamente dal campo location.city . |
location.countryOrRegion | read_only_udm.principal.location.country_or_region | Il valore viene mappato direttamente dal campo location.countryOrRegion . |
location.geoCoordinates.latitude | read_only_udm.principal.location.region_coordinates.latitude | Il valore viene mappato direttamente dal campo location.geoCoordinates.latitude e convertito in un numero con virgola mobile. |
location.geoCoordinates.latitude | read_only_udm.principal.location.region_latitude | Il valore viene mappato direttamente dal campo location.geoCoordinates.latitude e convertito in un numero con virgola mobile. |
location.geoCoordinates.longitude | read_only_udm.principal.location.region_coordinates.longitude | Il valore viene mappato direttamente dal campo location.geoCoordinates.longitude e convertito in un valore float. |
location.geoCoordinates.longitude | read_only_udm.principal.location.region_longitude | Il valore viene mappato direttamente dal campo location.geoCoordinates.longitude e convertito in un valore float. |
location.state | read_only_udm.principal.location.state | Il valore viene mappato direttamente dal campo location.state . |
networkLocationDetails.networkNames | read_only_udm.additional.fields.value.string_value | Il valore viene generato concatenando tutti i valori dell'array networkLocationDetails.networkNames , separati da virgole. |
networkLocationDetails.networkType | read_only_udm.additional.fields.value.string_value | Il valore viene mappato direttamente dal campo networkLocationDetails.networkType . |
networkLocationDetails.networkType | read_only_udm.security_result.detection_fields.value | Il valore viene mappato direttamente dal campo networkLocationDetails.networkType . |
operationName | read_only_udm.metadata.event_type | Il valore viene mappato a "USER_LOGIN" se operationName è "Attività di accesso", a "USER_CHANGE_PERMISSIONS" se operationName è "Aggiungi membro al gruppo" e a "USER_RESOURCE_UPDATE_PERMISSIONS" se operationName è "Aggiungi assegnazione del ruolo dell'app all'entità principale del servizio". In caso contrario, il valore viene determinato in base alla presenza di altri campi: * "USER_LOGIN" se has_target_user è "true". * "USER_UNCATEGORIZED" se has_principal_user è "true". * "STATUS_UPDATE" se has_principal è "true". * "GENERIC_EVENT" in caso contrario. |
operationType | read_only_udm.security_result.action_details | Il valore viene mappato direttamente dal campo operationType . |
properties.activity | read_only_udm.security_result.summary | Il valore viene mappato direttamente dal campo properties.activity . |
properties.activityDateTime | read_only_udm.metadata.event_timestamp.seconds | Il valore viene estratto dal campo properties.activityDateTime e convertito in secondi dall'epoca. |
properties.additionalInfo | read_only_udm.network.http.user_agent | Il valore viene estratto dal campo properties.additionalInfo analizzando la stringa JSON ed estraendo il valore corrispondente alla chiave "userAgent". |
properties.additionalInfo | read_only_udm.target.url | Il valore viene estratto dal campo properties.additionalInfo analizzando la stringa JSON ed estraendo il valore corrispondente alla chiave "alertUrl". |
properties.appId | read_only_udm.target.resource.attribute.labels.value | Il valore viene mappato direttamente dal campo properties.appId . |
properties.appDisplayName | read_only_udm.target.application | Il valore viene mappato direttamente dal campo properties.appDisplayName . |
properties.appliedConditionalAccessPolicies.displayName | read_only_udm.security_result.rule_name | Il valore viene mappato direttamente dal campo properties.appliedConditionalAccessPolicies.displayName . |
properties.appliedConditionalAccessPolicies.id | read_only_udm.security_result.rule_id | Il valore viene mappato direttamente dal campo properties.appliedConditionalAccessPolicies.id . |
properties.appliedConditionalAccessPolicies.result | read_only_udm.security_result.detection_fields.value | Il valore viene mappato direttamente dal campo properties.appliedConditionalAccessPolicies.result . |
properties.authenticationDetails.authenticationMethod | read_only_udm.security_result.detection_fields.value | Il valore viene mappato direttamente dal campo properties.authenticationDetails.authenticationMethod . |
properties.authenticationDetails.authenticationMethodDetail | read_only_udm.security_result.detection_fields.value | Il valore viene mappato direttamente dal campo properties.authenticationDetails.authenticationMethodDetail . |
properties.authenticationDetails.authenticationStepDateTime | read_only_udm.security_result.detection_fields.value | Il valore viene mappato direttamente dal campo properties.authenticationDetails.authenticationStepDateTime . |
properties.authenticationDetails.authenticationStepRequirement | read_only_udm.security_result.detection_fields.value | Il valore viene mappato direttamente dal campo properties.authenticationDetails.authenticationStepRequirement . |
properties.authenticationDetails.authenticationStepResultDetail | read_only_udm.security_result.detection_fields.value | Il valore viene mappato direttamente dal campo properties.authenticationDetails.authenticationStepResultDetail . |
properties.authenticationProcessingDetails.key | read_only_udm.additional.fields.key | Il valore viene mappato direttamente dal campo properties.authenticationProcessingDetails.key , preceduto dal prefisso "properties authenticationProcessingDetails - ". |
properties.authenticationProcessingDetails.value | read_only_udm.additional.fields.value.string_value | Il valore viene mappato direttamente dal campo properties.authenticationProcessingDetails.value . |
properties.authenticationRequirement | read_only_udm.additional.fields.value.string_value | Il valore viene mappato direttamente dal campo properties.authenticationRequirement . |
properties.authenticationRequirementPolicies.detail | read_only_udm.security_result.detection_fields.value | Il valore viene mappato direttamente dal campo properties.authenticationRequirementPolicies.detail . |
properties.authenticationRequirementPolicies.requirementProvider | read_only_udm.security_result.detection_fields.value | Il valore viene mappato direttamente dal campo properties.authenticationRequirementPolicies.requirementProvider . |
properties.clientAppUsed | read_only_udm.principal.application | Il valore viene mappato direttamente dal campo properties.clientAppUsed . |
properties.conditionalAccessStatus | read_only_udm.additional.fields.value.string_value | Il valore viene mappato direttamente dal campo properties.conditionalAccessStatus . |
properties.createdDateTime | read_only_udm.metadata.event_timestamp.seconds | Il valore viene estratto dal campo properties.createdDateTime e convertito in secondi dall'epoca. |
properties.crossTenantAccessType | read_only_udm.additional.fields.value.string_value | Il valore viene mappato direttamente dal campo properties.crossTenantAccessType . |
properties.detectedDateTime | read_only_udm.additional.fields.value.string_value | Il valore viene mappato direttamente dal campo properties.detectedDateTime . |
properties.detectionTimingType | read_only_udm.additional.fields.value.string_value | Il valore viene mappato direttamente dal campo properties.detectionTimingType . |
properties.homeTenantId | read_only_udm.additional.fields.value.string_value | Il valore viene mappato direttamente dal campo properties.homeTenantId . |
properties.id | read_only_udm.metadata.product_log_id | Il valore viene mappato direttamente dal campo properties.id . |
properties.initiatedBy.user.displayName | read_only_udm.principal.user.user_display_name | Il valore viene mappato direttamente dal campo properties.initiatedBy.user.displayName . |
properties.initiatedBy.user.id | read_only_udm.principal.user.windows_sid | Il valore viene mappato direttamente dal campo properties.initiatedBy.user.id . |
properties.initiatedBy.user.ipAddress | read_only_udm.principal.ip | Il valore viene mappato direttamente dal campo properties.initiatedBy.user.ipAddress . |
properties.initiatedBy.user.ipAddress | read_only_udm.principal.asset.ip | Il valore viene mappato direttamente dal campo properties.initiatedBy.user.ipAddress . |
properties.initiatedBy.user.userPrincipalName | read_only_udm.principal.user.userid | Il valore viene mappato direttamente dal campo properties.initiatedBy.user.userPrincipalName se non corrisponde a un pattern di indirizzo email. |
properties.initiatedBy.user.userPrincipalName | read_only_udm.principal.user.email_addresses | Il valore viene mappato direttamente dal campo properties.initiatedBy.user.userPrincipalName se corrisponde a un pattern di indirizzo email. |
properties.ipAddress | read_only_udm.principal.ip | Il valore viene estratto dal campo properties.ipAddress utilizzando un pattern Grok per estrarre l'indirizzo IP. |
properties.ipAddress | read_only_udm.principal.asset.ip | Il valore viene estratto dal campo properties.ipAddress utilizzando un pattern Grok per estrarre l'indirizzo IP. |
properties.isGuest | read_only_udm.additional.fields.value.string_value | Il valore viene mappato direttamente dal campo properties.isGuest . |
properties.isDeleted | read_only_udm.additional.fields.value.string_value | Il valore viene mappato direttamente dal campo properties.isDeleted . |
properties.isProcessing | read_only_udm.additional.fields.value.string_value | Il valore viene mappato direttamente dal campo properties.isProcessing . |
properties.lastUpdatedDateTime | read_only_udm.additional.fields.value.string_value | Il valore viene mappato direttamente dal campo properties.lastUpdatedDateTime . |
properties.location.city | read_only_udm.principal.location.city | Il valore viene mappato direttamente dal campo properties.location.city . |
properties.location.countryOrRegion | read_only_udm.principal.location.country_or_region | Il valore viene mappato direttamente dal campo properties.location.countryOrRegion . |
properties.location.geoCoordinates.latitude | read_only_udm.principal.location.region_coordinates.latitude | Il valore viene mappato direttamente dal campo properties.location.geoCoordinates.latitude e convertito in un numero con virgola mobile. |
properties.location.geoCoordinates.latitude | read_only_udm.principal.location.region_latitude | Il valore viene mappato direttamente dal campo properties.location.geoCoordinates.latitude e convertito in un numero con virgola mobile. |
properties.location.geoCoordinates.longitude | read_only_udm.principal.location.region_coordinates.longitude | Il valore viene mappato direttamente dal campo properties.location.geoCoordinates.longitude e convertito in un numero con virgola mobile. |
properties.location.geoCoordinates.longitude | read_only_udm.principal.location.region_longitude | Il valore viene mappato direttamente dal campo properties.location.geoCoordinates.longitude e convertito in un valore float. |
properties.location.state | read_only_udm.principal.location.state | Il valore viene mappato direttamente dal campo properties.location.state . |
properties.networkLocationDetails.networkNames | read_only_udm.additional.fields.value.string_value | Il valore viene generato concatenando tutti i valori dell'array properties.networkLocationDetails.networkNames , separati da virgole. |
properties.networkLocationDetails.networkType | read_only_udm.additional.fields.value.string_value | Il valore viene mappato direttamente dal campo properties.networkLocationDetails.networkType . |
properties.networkLocationDetails.networkType | read_only_udm.security_result.detection_fields.value | Il valore viene mappato direttamente dal campo properties.networkLocationDetails.networkType . |
properties.resourceServicePrincipalId | read_only_udm.target.resource.attribute.labels.value | Il valore viene mappato direttamente dal campo properties.resourceServicePrincipalId . |
properties.riskDetail | read_only_udm.additional.fields.value.string_value | Il valore viene mappato direttamente dal campo properties.riskDetail . |
properties.riskEventType | read_only_udm.additional.fields.value.string_value | Il valore viene mappato direttamente dal campo properties.riskEventType . |
properties.riskLastUpdatedDateTime | read_only_udm.additional.fields.value.string_value | Il valore viene mappato direttamente dal campo properties.riskLastUpdatedDateTime . |
properties.riskLevel | read_only_udm.additional.fields.value.string_value | Il valore viene mappato direttamente dal campo properties.riskLevel . |
properties.riskLevelDuringSignIn | read_only_udm.additional.fields.value.string_value | Il valore viene mappato direttamente dal campo properties.riskLevelDuringSignIn . |
properties.riskState | read_only_udm.additional.fields.value.string_value | Il valore viene mappato direttamente dal campo properties.riskState . |
properties.riskType | read_only_udm.additional.fields.value.string_value | Il valore viene mappato direttamente dal campo properties.riskType . |
properties.source | read_only_udm.additional.fields.value.string_value | Il valore viene mappato direttamente dal campo properties.source . |
properties.targetResources.0.id | read_only_udm.target.user.product_object_id | Il valore viene mappato direttamente dal campo properties.targetResources.0.id . |
properties.targetResources.modifiedProperties.0.newValue | read_only_udm.target.group.product_object_id | Il valore viene mappato direttamente dal campo properties.targetResources.modifiedProperties.0.newValue . |
properties.tokenIssuerType | read_only_udm.additional.fields.value.string_value | Il valore viene mappato direttamente dal campo properties.tokenIssuerType . |
properties.userAgent | read_only_udm.network.http.parsed_user_agent | Il valore viene mappato direttamente dal campo properties.userAgent e convertito in un oggetto user agent analizzato. |
properties.userAgent | read_only_udm.network.http.user_agent | Il valore viene mappato direttamente dal campo properties.userAgent . |
properties.userId | read_only_udm.target.user.product_object_id | Il valore viene mappato direttamente dal campo properties.userId . |
properties.userPrincipalName | read_only_udm.target.user.userid | Il valore viene mappato direttamente dal campo properties.userPrincipalName se non corrisponde a un pattern di indirizzo email. |
properties.userPrincipalName | read_only_udm.target.user.email_addresses | Il valore viene mappato direttamente dal campo properties.userPrincipalName se corrisponde a un pattern di indirizzo email. |
risultato | read_only_udm.security_result.action | Il valore viene mappato a "ALLOW" se result è "success". |
risultato | read_only_udm.security_result.action_details | Il valore viene mappato direttamente dal campo result se result è "success". |
resultDescription | read_only_udm.security_result.description | Il valore viene mappato direttamente dal campo resultDescription . |
resultSignature | read_only_udm.additional.fields.value.string_value | Il valore viene mappato direttamente dal campo resultSignature . |
resultType | read_only_udm.security_result.action | Il valore viene mappato a "ALLOW" se resultType è "0". |
resultType | read_only_udm.security_result.rule_id | Il valore viene mappato direttamente dal campo resultType se non è vuoto e non è "0". |
resultType | read_only_udm.security_result.summary | Il valore viene mappato a "Accesso riuscito" se resultType è "0" e a "Accesso non riuscito" in caso contrario. |
resourceDisplayName | read_only_udm.target.application | Il valore viene mappato direttamente dal campo resourceDisplayName . |
resourceDisplayName | read_only_udm.target.resource.name | Il valore viene mappato direttamente dal campo resourceDisplayName . |
resourceId | read_only_udm.target.resource.id | Il valore viene mappato direttamente dal campo resourceId . |
resourceId | read_only_udm.target.resource.product_object_id | Il valore viene mappato direttamente dal campo resourceId . |
resourceServicePrincipalId | read_only_udm.target.resource.attribute.labels.value | Il valore viene mappato direttamente dal campo resourceServicePrincipalId . |
riskDetail | read_only_udm.additional.fields.value.string_value | Il valore viene mappato direttamente dal campo riskDetail . |
riskEventTypes | read_only_udm.additional.fields.value.string_value | Il valore viene estratto dall'array riskEventTypes e mappato a un valore stringa nell'array additional.fields . |
riskEventTypes | read_only_udm.additional.fields.value.list_value.values.string_value | Il valore viene mappato direttamente da ogni elemento dell'array riskEventTypes . |
riskEventTypes_v2 | read_only_udm.additional.fields.value.list_value.values.string_value | Il valore viene mappato direttamente da ogni elemento dell'array riskEventTypes_v2 . |
riskLevelAggregated | read_only_udm.additional.fields.value.string_value | Il valore viene mappato direttamente dal campo riskLevelAggregated . |
riskLevelDuringSignIn | read_only_udm.additional.fields.value.string_value | Il valore viene mappato direttamente dal campo riskLevelDuringSignIn . |
riskState | read_only_udm.additional.fields.value.string_value | Il valore viene mappato direttamente dal campo riskState . |
status.additionalDetails | read_only_udm.security_result.description | Il valore viene mappato direttamente dal campo status.additionalDetails . |
status.errorCode | read_only_udm.security_result.action | Il valore viene mappato a "ALLOW" se status.errorCode è "0". |
status.errorCode | read_only_udm.security_result.rule_id | Il valore viene mappato direttamente dal campo status.errorCode se non è vuoto. |
status.errorCode | read_only_udm.security_result.summary | Il valore viene mappato a "Accesso riuscito" se status.errorCode è "0" e a "Accesso non riuscito" in caso contrario. |
status.failureReason | read_only_udm.additional.fields.value.string_value | Il valore viene mappato direttamente dal campo status.failureReason . |
targetResources.displayName | read_only_udm.target.resource.name | Il valore viene mappato direttamente dal campo targetResources.displayName . |
targetResources.id | read_only_udm.target.resource.id | Il valore viene mappato direttamente dal campo targetResources.id . |
targetResources.id | read_only_udm.target.resource.product_object_id | Il valore viene mappato direttamente dal campo targetResources.id . |
targetResources.modifiedProperties.displayName | read_only_udm.target.resource.attribute.labels.key | Il valore viene mappato direttamente dal campo targetResources.modifiedProperties.displayName . |
targetResources.modifiedProperties.newValue | read_only_udm.target.resource.attribute.labels.value | Il valore viene mappato direttamente dal campo targetResources.modifiedProperties.newValue dopo aver rimosso le virgolette doppie. |
targetResources.modifiedProperties.oldValue | read_only_udm.target.resource.attribute.labels.value | Il valore viene mappato direttamente dal campo targetResources.modifiedProperties.oldValue . |
targetResources.type | read_only_udm.target.resource.type | Il valore viene mappato direttamente dal campo targetResources.type . |
targetResources.userPrincipalName | read_only_udm.target.user.user_display_name | Il valore viene mappato direttamente dal campo targetResources.userPrincipalName . |
tenantId | read_only_udm.metadata.product_deployment_id | Il valore viene mappato direttamente dal campo tenantId . |
tempo | read_only_udm.metadata.event_timestamp.seconds | Il valore viene estratto dal campo time e convertito in secondi dall'epoca. |
userAgent | read_only_udm.network.http.parsed_user_agent | Il valore viene mappato direttamente dal campo userAgent e convertito in un oggetto user agent analizzato. |
userAgent | read_only_udm.network.http.user_agent | Il valore viene mappato direttamente dal campo userAgent . |
userDisplayName | read_only_udm.target.user.user_display_name | Il valore viene mappato direttamente dal campo userDisplayName se è diverso da userId e non corrisponde a un pattern di indirizzo email. |
userPrincipalName | read_only_udm.principal.administrative_domain | La parte di dominio dell'indirizzo email viene estratta dal campo userPrincipalName utilizzando un pattern Grok e mappata al campo principal.administrative_domain . |
userPrincipalName | read_only_udm.target.user.email_addresses | Il valore viene mappato direttamente dal campo userPrincipalName se corrisponde a un pattern di indirizzo email. |
userPrincipalName | read_only_udm.target.user.userid | Il valore viene mappato direttamente dal campo userPrincipalName se non corrisponde a un pattern di indirizzo email. |
userId | read_only_udm.target.user.product_object_id | Il valore viene mappato direttamente dal campo userId . |
read_only_udm.metadata.log_type | AZURE_AD | Questo valore è hardcoded nel parser. |
read_only_udm.metadata.vendor_name | Microsoft | Questo valore è hardcoded nel parser. |
read_only_udm.metadata.product_name | Azure AD | Questo valore è hardcoded nel parser. |
read_only_udm.extensions.auth.type | SSO | Questo valore è hardcoded nel parser. |
Modifiche
2024-07-05
- "isInteractive" è stato mappato a "security_result.detection_fields".
2024-04-02
- "properties.createdDateTime" è stato mappato a "metadata.event_timestamp".
- "properties.resourceServicePrincipalId" e "resourceServicePrincipalId" sono stati mappati a "target.resource.attribute.labels".
- "properties.authenticationProcessingDetails", "authenticationProcessingDetails" e "properties.networkLocationDetails" sono stati mappati a "additional.fields".
- "properties.userAgent" è stato mappato a "network.http.user_agent" e "network.http.parsed_user_agent".
- "properties.authenticationRequirement" è stato mappato a "additional.fields".
2024-06-03
- È stata modificata la mappatura di "policies.displayName" da "about.user.user_display_name" a "security_result.rule_name".
- È stata modificata la mappatura di "policies.id" da "about.user.userid" a "security_result.rule_id".
- È stata modificata la mappatura di "policies.result" da "about.labels" a "security_result.detection_fields".
2024-05-29
- Quando "status.errorCode" è "0", imposta "security_result.action" su "ALLOW".
2024-05-13
Correzione di bug:
- "userPrincipalName" è stato mappato a "target.user.userid".
2024-05-10
- "networkLocationDetails.n.networkNames", "properties.networkLocationDetails.n.networkNames", "networkLocationDetails.n.networkType" e "properties.networkLocationDetails.n.networkType" sono stati mappati a "additional.fields".
- "properties.userAgent" e "userAgent" sono stati mappati a "network.http.user_agent" e "network.http.parsed_user_agent".
2024-05-03
Correzione di bug:
- È stato aggiunto il controllo "on_error" prima della mappatura di "target.modifiedProperties.n.newValue".
- Sono stati mappati "target.modifiedProperties.n.oldValue" e "target.modifiedProperties.n.displayName" a "target.resource.attribute.labels".
- "activityDisplayName" è stato mappato a "security_result.summary".
2024-04-30
- "properties.authenticationDetails", "properties.networkLocationDetails", "properties.authenticationRequirementPolicies", "networkLocationDetails" e "authenticationRequirementPolicies" sono stati mappati a "security_result.detection_fields".
2024-04-02
- "properties.authenticationRequirement" è stato mappato a "additional.fields".
2024-04-02
- "authenticationRequirement" è stato mappato a "additional.fields".
2024-02-26
- "appliedConditionalAccessPolicies" è stato mappato a "security_result".
- "isInteractive" è stato mappato a "extensions.auth.mechanism".
- "location.geoCoordinates.altitude" è stato mappato a "additional.fields".
2024-02-09
- Sono stati mappati "authenticationDetails.authenticationMethod", "authenticationDetails.authenticationMethodDetail", "authenticationDetails.authenticationStepResultDetail", "authenticationDetails.authenticationStepDateTime" e "authenticationDetails.authenticationStepRequirement" a "security_result.detection_fields".
- "authenticationDetails.succeeded" è stato mappato a "security_result.action".
- "status.additionalDetails" è stato mappato a "security_result.description".
2024-01-11
- "correlationId" è stato mappato a "security_result.detection_fields".
2023-11-20
- "tenantId" è stato mappato a "metadata.product_deployment_id".
- "Livello" è stato mappato a "security_result.severity_details" e "security_result.severity".
- "properties.userDisplayName" è stato mappato a "target.user.user_display_name".
- "identity" è stato mappato a "target.user.user_display_name".
- "properties.activityDateTime" è stato mappato a "metadata.event_timestamp".
- "properties.activity" è stato mappato a "security_result.summary".
- "resultSignature", "properties.riskLevel", "properties.isGuest", "properties.isDeleted", "properties.isProcessing",
- "properties.riskLastUpdatedDateTime", "properties.riskType", "properties.riskEventType", "properties.riskState", "properties.riskDetail", "properties.source", "properties.detectionTimingType"
- "properties.detectedDateTime", "properties.lastUpdatedDateTime", "properties.tokenIssuerType", "properties.homeTenantId", "properties.userType", "properties.crossTenantAccessType", "durationMs" in "additional.fields".
- "resourceId" è stato mappato a "target.resource.product_object_id".
- "properties.location.geoCoordinates.longitude" e "location.geoCoordinates.longitude" sono stati mappati a "principal.location.region_coordinates.longitude".
- "properties.location.geoCoordinates.latitude" e "location.geoCoordinates.latitude" sono stati mappati a "principal.location.region_coordinates.latitude".
2023-07-12
- Sono stati mappati "deviceDetail.isCompliant", "deviceDetail.isManaged", "deviceDetail.trustType" a "principal.asset.attribute.labels".
- "deviceDetail.deviceId" è stato mappato a "principal.asset.asset_id".
- "deviceDetail.browser" è stato mappato a "network.http.user_agent".
- "deviceDetail.operatingSystem" è stato mappato a "principal.platform_version".
- "status.failureReason" è stato mappato a "additional.fields".
- "status.errorCode" è stato mappato a "security_result.rule_id".
- "deviceDetail.displayName" è stato mappato a "principal.asset.hardware".
2023-03-14
- "browser" è stato mappato a "principal.resource.attribute.labels".
- "isCompliant", "isManaged" e "trustType" sono stati mappati a "principal.asset.attribute.labels".
- È stato mappato il dominio "domain" da "userPrincipalName" a "principal.administrative_domain".
2022-12-16
- È stato aggiunto il controllo condizionale per il campo "initiatedBy.user.userPrincipalName" e mappato a "principal.user.email_addresses".
2022-10-28
- "additionalDetails.0.value" è stato mappato a "network.http.user_agent".
- "additionalDetails.1.value" è stato mappato a "target.resource.attribute.labels".
- "Id" mappato a "metadata.product_log_id".
- "initiatedBy.user.id" è stato mappato a "principal.user.userid".
- "initiatedBy.user.displayName" è stato mappato a "principal.user.user_display_name".
- "initiatedBy.user.ipAddress" è stato mappato a "principal.ip".
- "initiatedBy.user.userPrincipalName" è stato mappato a "principal.user.email_addresses".
- "operationType" è stato mappato a "security_result.action_details".
- "target.displayName" è stato mappato a "target.resource.name".
- "target.id" è stato mappato a "target.resource.id".
- "target.type" è stato mappato a "target.resource.type".
- "field.newValue" è stato mappato a "target.resource.product_object_id" se field.displayName è "AppRole.Id", altrimenti "field.newValue" è stato mappato a "target.resource.attribute.labels".
- È stata aggiunta la verifica di errorCode.
- "loggedByService" è stato mappato a "target.application".
- "activityDisplayName" è stato mappato a "metadata.product_event_type".
- "metadata.event_type" è stato mappato a "USER_RESOURCE_UPDATE_PERMISSIONS", dove "activityDisplayName" è "Aggiungi assegnazione del ruolo dell'app all'entità di servizio".
2022-08-25
- Se "properties.initiatedBy.user.userPrincipalName" corrisponde a "pattern regex email", viene mappato a "principal.user.email_addresses", altrimenti a "principal.user.userid".
- Se "properties.userPrincipalName" o "userPrincipalName" corrisponde a "pattern regex email", viene mappato a "target.user.email_addresses", altrimenti a "target.user.userid".
2022-08-11
- È stato rimosso il tag di interruzione "TAG_MALFORMED_ENCODING".
- È stato aggiunto "event_type" "GENERIC_EVENT".
2022-05-29
- Miglioramento: è stato modificato il ciclo for per il campo "riskEventTypes_v2" mappato a "additional.fields".
- È stato mappato il campo "livello" a "security_result.severity_details".
- È stato mappato il campo "properties.result" a "security_result.action_details".
2022-04-20
- Correzione di bug: analisi dei log con evento "appDisplayName": "NotApplicable".
- È stato modificato il ciclo for per il campo "riskEventTypes".