Recoger registros de Microsoft Azure AD

Disponible en:

En este documento se describe cómo puede recoger registros de Microsoft Azure Active Directory (AD) configurando un feed de Google Security Operations.

Azure Active Directory (AZURE_AD) ahora se llama Microsoft Entra ID. Los registros de auditoría de Azure AD (AZURE_AD_AUDIT) ahora son registros de auditoría de Microsoft Entra ID.

Para obtener más información, consulta Ingestión de datos en Google Security Operations.

Una etiqueta de ingestión identifica el analizador que normaliza los datos de registro sin procesar en formato UDM estructurado.

Antes de empezar

Asegúrate de que cumples los siguientes requisitos previos:

  • Una suscripción a Azure con la que puedas iniciar sesión
  • Un rol de administrador global o de Azure AD
  • Un Azure AD (inquilino) en Azure

Cómo configurar Azure AD

  1. Inicia sesión en el portal de Azure.
  2. Ve a Inicio > Registro de aplicaciones, selecciona una aplicación registrada o registra una si aún no lo has hecho.
  3. Para registrar una aplicación, en la sección Registro de aplicaciones, haz clic en Nuevo registro.
  4. En el campo Nombre, indica el nombre visible de tu aplicación.
  5. En la sección Tipos de cuenta admitidos, selecciona Solo cuentas de este directorio de la empresa (cliente único).

    • URI de redirección: déjelo en blanco (no es necesario para la autenticación de la entidad de servicio).
  6. Haz clic en Registrarse.

  7. Ve a la página Descripción general y copia el ID de aplicación (cliente) y el ID de directorio (inquilino), que son necesarios para configurar el feed de Google Security Operations.

  8. Haz clic en Permisos de API.

  9. Haz clic en Añadir un permiso y, a continuación, selecciona Microsoft Graph en el nuevo panel.

  10. Haz clic en Permisos de la aplicación.

  11. Selecciona los permisos AuditLog.Read.All, Directory.Read.All y SecurityEvents.Read.All. Asegúrate de que los permisos sean Permisos de aplicación y no Permisos delegados.

  12. Haz clic en Conceder consentimiento de administrador para el directorio predeterminado. Las aplicaciones están autorizadas para llamar a las APIs cuando los usuarios o los administradores les conceden permisos como parte del proceso de consentimiento.

  13. Ve a Ajustes > Gestionar.

  14. Haz clic en Certificados y secretos.

  15. Haz clic en Nuevo secreto de cliente. En el campo Valor, aparece el secreto de cliente.

  16. Copia el valor del secreto de cliente. El valor solo se muestra en el momento de la creación y es necesario para registrar la aplicación de Azure y configurar el feed de Google Security Operations.

Configurar feeds

Hay dos puntos de entrada diferentes para configurar feeds en la plataforma Google SecOps:

  • Configuración de SIEM > Feeds > Añadir nuevo feed
  • Centro de contenido > Paquetes de contenido > Empezar

Cómo configurar el feed de Microsoft Entra ID (Azure AD)

  1. Haz clic en el paquete Plataforma de Azure.
  2. Busca el tipo de registro Azure AD.
  3. Especifique los valores de los siguientes campos:

    • Tipo de fuente: API de terceros (opción recomendada)
    • ID de cliente de OAuth: especifica el ID de cliente que has obtenido anteriormente.
    • Secreto de cliente de OAuth: especifica el secreto de cliente que has obtenido anteriormente.
    • ID de cliente: especifica el ID de cliente que has obtenido anteriormente.
    • Ruta completa de la API: URL del endpoint de la API REST de Microsoft Graph.
    • Endpoint de autenticación de la API: endpoint de autenticación de Microsoft Active Directory.

    Opciones avanzadas

    • Nombre del feed: un valor rellenado automáticamente que identifica el feed.
    • Espacio de nombres de recursos: espacio de nombres asociado al feed.
    • Etiquetas de ingestión: etiquetas aplicadas a todos los eventos de este feed.
  4. Haga clic en Crear feed.

Para obtener más información sobre cómo configurar varios feeds para diferentes tipos de registros en esta familia de productos, consulta el artículo Configurar feeds por producto.

Para obtener más información sobre los feeds de Google Security Operations, consulta la documentación de los feeds de Google Security Operations. Para obtener información sobre los requisitos de cada tipo de feed, consulta el artículo Configuración de feeds por tipo.

Referencia de asignación de campos

Este código de analizador transforma los registros sin procesar de Azure AD en formato JSON en un modelo de datos unificado (UDM). Primero, normaliza los datos eliminando los campos innecesarios y, a continuación, extrae información relevante, como los detalles del usuario, las marcas de tiempo y las especificaciones del evento, y los asigna a los campos de UDM correspondientes para que la representación y el análisis sean coherentes.

Tabla de asignación de UDM

Campo de registro Asignación de UDM Observaciones
about about
accountEnabled user.user_authentication_status
user.attribute.labels.value (clave: accountEnabled)
Si accountEnabled es true, user.user_authentication_status se asigna a ACTIVE y se añade una etiqueta con la clave accountEnabled y el valor true. De lo contrario, se añade una etiqueta con la clave accountEnabled y el valor false.
additionalDetails additional.fields
appOwnerTenantId target.resource.attribute.labels
authenticationAppDeviceDetails additional.fields
authenticationContextClassReference security_result.detection_fields
autonomousSystemNumber principal.resource.attribute.labels
browser network.http.user_agent
browser network.http.user_agent
businessPhones user.phone_numbers Se extraen varios números de teléfono y se asignan como entradas independientes.
city user.personal_address.city
clientCredentialType additional.fields
companyName user.company_name
country user.personal_address.country_or_region Si country está vacío, el valor se toma de usageLocation.
createdDateTime user.attribute.creation_time Se ha convertido en una marca de tiempo a partir del campo createdDateTime del registro sin procesar con el formato RFC 3339.
cribl_pipe additional.fields
crossTenantAccessType additional.fields
department user.department Se extraen varios departamentos y se asignan como entradas independientes.
deviceDetail.displayName principal.hostname,principal.asset.hostname
displayName user.user_display_name
employeeId user.employee_id Si employeeId está vacío, el valor se toma de extension_employeeNumber.
employeeType user.attribute.labels.value (clave: employeeType) Se asigna desde el campo employeeType del registro sin procesar y se añade como etiqueta con la clave employeeType.
empmanager-src.accountEnabled user.user_authentication_status
user.attribute.labels.value (clave: accountEnabled)
Si manager está vacío y empmanager-src.accountEnabled es true, user.user_authentication_status se define como ACTIVE y se añade una etiqueta con la clave accountEnabled y el valor true. De lo contrario, se añade una etiqueta con la clave accountEnabled y el valor false.
empmanager-src.onPremisesDistinguishedName manager_role.type Si gopher-manager está vacío y la parte de la unidad organizativa del nombre distintivo del gestor contiene Users, manager_role.type se asigna a ADMINISTRATOR. Si contiene Service Accounts, manager_role.type se asigna a SERVICE_ACCOUNT.
empmanager-src.userPrincipalName manager_role.type Si gopher-manager está vacío y empmanager-src.userPrincipalName empieza por svc-, manager_role.type se define como SERVICE_ACCOUNT.
errorCode security_result.detection_fields
extension_employeeNumber user.employee_id Se asigna a user.employee_id si employeeId está vacío.
extension_wfc_AccountingUnitName event.idm.entity.entity.labels.value (clave: extension_wfc_AccountingUnitName) Se asigna desde el campo extension_wfc_AccountingUnitName del registro sin procesar y se añade como etiqueta con la clave extension_wfc_AccountingUnitName.
extension_wfc_AccountType event.idm.entity.entity.labels.value (clave: wfc_AccountType) Se asigna desde el campo extension_wfc_AccountType del registro sin procesar y se añade como etiqueta con la clave wfc_AccountType.
extension_wfc_execDescription event.idm.entity.entity.labels.value (clave: extension_wfc_execDescription) Se asigna desde el campo extension_wfc_execDescription del registro sin procesar y se añade como etiqueta con la clave extension_wfc_execDescription.
extension_wfc_groupDescription event.idm.entity.entity.labels.value (clave: extension_wfc_groupDescription) Se asigna desde el campo extension_wfc_groupDescription del registro sin procesar y se añade como etiqueta con la clave extension_wfc_groupDescription.
extension_wfc_orgDescription event.idm.entity.entity.labels.value (clave: extension_wfc_orgDescription) Se asigna desde el campo extension_wfc_orgDescription del registro sin procesar y se añade como etiqueta con la clave extension_wfc_orgDescription.
failureReason security_result.description
federatedCredentialId additional.fields
flaggedForReview additional.fields
givenName user.first_name
gopher-devices event.idm.entity.relations Cada dispositivo de la matriz gopher-devices se asigna a una entrada de relación independiente. deviceId se asigna a product_object_id, operatingSystem y operatingSystemVersion se combinan para formar el modelo platform_version, que se asigna directamente, y createdDateTime se convierte en una marca de tiempo y se asigna a created_timestamp. La relación se ha definido como OWNS y la dirección como UNIDIRECTIONAL.
gopher-groups event.idm.entity.relations Cada grupo de la matriz gopher-groups se asigna a una entrada de relación independiente. id se asigna a product_object_id y displayName se asigna a group_display_name. La relación se ha definido como MEMBER y la dirección como UNIDIRECTIONAL.
gopher-manager.businessPhones empmanager.phone_numbers Se asigna a empmanager.phone_numbers si manager está vacío.
gopher-manager.country empmanager.personal_address.country_or_region Se asigna a empmanager.personal_address.country_or_region si manager está vacío. Si tanto gopher-manager.country como gopher-manager.usageLocation están vacíos, el campo se deja vacío.
gopher-manager.department empmanager.department Se asigna a empmanager.department si manager está vacío.
gopher-manager.displayName empmanager.user_display_name Se asigna a empmanager.user_display_name si manager está vacío.
gopher-manager.employeeId empmanager.employee_id Se asigna a empmanager.employee_id si manager está vacío y gopher-manager.employeeId no lo está.
gopher-manager.extension_employeeNumber empmanager.employee_id Se asigna a empmanager.employee_id si manager y gopher-manager.employeeId están vacíos y gopher-manager.extension_employeeNumber no está vacío.
gopher-manager.givenName empmanager.first_name Se asigna a empmanager.first_name si manager está vacío.
gopher-manager.id empmanager.product_object_id Se asigna a empmanager.product_object_id si manager está vacío.
gopher-manager.jobTitle empmanager.title Se asigna a empmanager.title si manager está vacío.
gopher-manager.mail empmanager.email_addresses Se asigna a empmanager.email_addresses si manager está vacío.
gopher-manager.onPremisesImmutableId user.attribute.labels.value (clave: gopher-manager onPremisesImmutableId) Se asigna como una etiqueta con la clave gopher-manager onPremisesImmutableId.
gopher-manager.onPremisesSamAccountName empmanager.userid Se asigna a empmanager.userid si manager está vacío.
gopher-manager.onPremisesSecurityIdentifier empmanager.windows_sid Se asigna a empmanager.windows_sid si manager está vacío.
gopher-manager.proxyAddresses empmanager.email_addresses
empmanager.group_identifiers
Si manager está vacío, cada dirección de la matriz gopher-manager.proxyAddresses se asigna a empmanager.email_addresses o empmanager.group_identifiers en función de si empieza por smtp o SMTP.
gopher-manager.refreshTokensValidFromDateTime empmanager.attribute.labels.value (clave: refreshTokensValidFromDateTime) Se asigna como una etiqueta con la clave refreshTokensValidFromDateTime si manager está vacío.
gopher-manager.streetAddress empmanager.personal_address.name Se asigna a empmanager.personal_address.name si manager está vacío.
gopher-manager.surname empmanager.last_name Se asigna a empmanager.last_name si manager está vacío.
gopher-manager.usageLocation user.attribute.labels.value (clave: manager_src_usageLocation) Se asigna como una etiqueta con la clave manager_src_usageLocation.
gopher-manager.userType empmanager.attribute.roles.name Se asigna a empmanager.attribute.roles.name si manager está vacío.
homeTenantId target.resource.attribute.labels  
homeTenantName target.resource.attribute.labels  
id user.product_object_id  
identities user.attribute.labels.value (clave: signInType)
user.attribute.labels.value (clave: userPrincipalName)
El signInType se asigna como una etiqueta con la clave signInType. Si signInType y userPrincipalName no están vacíos, se combinan y se asignan como una etiqueta con la clave userPrincipalName.
identity principal.user.user_display_name  
incomingTokenType additional.fields  
initiatedBy.app.displayName principal.application  
initiatedBy.app.servicePrincipalId principal.resource.product_object_id  
initiatedBy.user.homeTenantId target.resource.attribute.labels  
initiatedBy.user.homeTenantName target.resource.attribute.labels  
initiatedBy.user.userType additional.fields  
ipAddressFromResourceProvider principal.resource.attribute.labels  
isTenantRestricted additional.fields  
jobTitle user.title  
loggedByService observer.application  
mail user.email_addresses Si mail empieza por svc-, user_role.type se define como SERVICE_ACCOUNT.
mail user_role.type Si mail empieza por svc-, user_role.type se define como SERVICE_ACCOUNT.
mailNickname user.attribute.labels.value (clave: mailNickname) Se asigna desde el campo mailNickname del registro sin procesar y se añade como etiqueta con la clave mailNickname.
manager.businessPhones empmanager.phone_numbers Se asigna a empmanager.phone_numbers si gopher-manager está vacío.
manager.city empmanager.personal_address.city Se asigna a empmanager.personal_address.city si gopher-manager está vacío.
manager.companyName empmanager.company_name Se asigna a empmanager.company_name si gopher-manager está vacío.
manager.country empmanager.personal_address.country_or_region Se asigna a empmanager.personal_address.country_or_region si gopher-manager está vacío. Si tanto manager.country como manager.usageLocation están vacíos, el campo se deja vacío.
manager.department empmanager.department Se asigna a empmanager.department si gopher-manager está vacío.
manager.displayName empmanager.user_display_name Se asigna a empmanager.user_display_name si gopher-manager está vacío.
manager.employeeId empmanager.employee_id Se asigna a empmanager.employee_id si gopher-manager está vacío y manager.employeeId no lo está.
manager.extension_employeeNumber empmanager.employee_id Se asigna a empmanager.employee_id si gopher-manager y manager.employeeId están vacíos y manager.extension_employeeNumber no está vacío.
manager.givenName empmanager.first_name Se asigna a empmanager.first_name si gopher-manager está vacío.
manager.id empmanager.product_object_id Se asigna a empmanager.product_object_id si gopher-manager está vacío.
manager.jobTitle empmanager.title Se asigna a empmanager.title si gopher-manager está vacío.
manager.mail empmanager.email_addresses Se asigna a empmanager.email_addresses si gopher-manager está vacío.
manager.onPremisesSamAccountName empmanager.userid Se asigna a empmanager.userid si gopher-manager está vacío.
manager.onPremisesSecurityIdentifier empmanager.windows_sid Se asigna a empmanager.windows_sid si gopher-manager está vacío.
manager.proxyAddresses empmanager.email_addresses
empmanager.group_identifiers
Si gopher-manager está vacío, cada dirección de la matriz manager.proxyAddresses se asigna a empmanager.email_addresses o empmanager.group_identifiers based on whether it starts withsmtporSMTP`.
manager.refreshTokensValidFromDateTime empmanager.attribute.labels.value (clave: refreshTokensValidFromDateTime) Se asigna como una etiqueta con la clave refreshTokensValidFromDateTime si gopher-manager está vacío.
manager.state empmanager.personal_address.state Se asigna a empmanager.personal_address.state si gopher-manager está vacío.
manager.streetAddress empmanager.personal_address.name Se asigna a empmanager.personal_address.name si gopher-manager está vacío.
manager.surname empmanager.last_name Se asigna a empmanager.last_name si gopher-manager está vacío.
manager.usageLocation user.attribute.labels.value (clave: manager_src_usageLocation)
empmanager.personal_address.country_or_region
Se asigna como una etiqueta con la clave manager_src_usageLocation. Si manager.country está vacío, el valor también se asigna a empmanager.personal_address.country_or_region.
manager.userType empmanager.attribute.roles.name Se asigna a empmanager.attribute.roles.name si gopher-manager está vacío.
mfaDetail.authDetail principal.user.phone_numbers  
onPremisesDistinguishedName user.attribute.labels.value (clave: onPremisesDistinguishedName)
user.attribute.labels.value (clave: onPremisesDistinguishedName-OU data)
El nombre distintivo completo se asigna como una etiqueta con la clave onPremisesDistinguishedName. La parte OU del nombre distintivo se extrae y se asigna como etiqueta con la clave onPremisesDistinguishedName-OU data. Si la parte OU contiene Admin, user_role.type se asigna a ADMINISTRATOR. Si contiene Service Accounts, user_role.type se asigna a SERVICE_ACCOUNT.
onPremisesDistinguishedName user_role.type Si la parte OU del nombre completo contiene Admin, user_role.type se asigna a ADMINISTRATOR. Si contiene Service Accounts, user_role.type se asigna a SERVICE_ACCOUNT.
onPremisesDomainName user.group_identifiers
user.attribute.labels.value (clave: onPremisesDomainName)
Se asigna directamente a user.group_identifiers y se añade como etiqueta con la clave onPremisesDomainName.
onPremisesImmutableId user.attribute.labels.value (clave: onPremisesImmutableId) Se asigna desde el campo onPremisesImmutableId del registro sin procesar y se añade como etiqueta con la clave onPremisesImmutableId.
onPremisesSamAccountName user.userid
user.attribute.labels.value (clave: onPremisesSamAccountName)
Se asigna a user.userid si sAMAccountName está vacío. También se añade como etiqueta con la clave onPremisesSamAccountName.
onPremisesSecurityIdentifier user.windows_sid  
operationName metadata.product_event_type  
OrganizationId principal.resource.product_object_id  
originalRequestId network.session_id  
originalTransferMethod additional.fields  
Parser Logic UDM Mapping Lógica
policies.enforcedGrantControls security_result.detection_fields  
processingTimeInMilliseconds additional.fields  
properties.__UDI_RequiredFields_RegionScope target.location.country_or_region  
properties.additionalDetails additional.fields  
properties.alternateSignInName target.user.userid  
properties.appId principal.user.product_object_id  
properties.atContentH additional.fields  
properties.atContentP additional.fields  
properties.authenticationContextClassReferences additional.fields  
properties.C_DeviceId additional.fields  
properties.C_Iat additional.fields  
properties.C_Idtyp additional.fields  
properties.C_Sid additional.fields  
properties.category security_result.category_details  
properties.clientAuthMethod additional.fields  
properties.clientCredentialType additional.fields  
properties.correlationId security_result.detection_fields  
properties.deviceDetail.browser network.http.user_agent  
properties.deviceDetail.deviceId principal.asset.asset_id  
properties.deviceDetail.displayName principal.hostname,principal.asset.hostname  
properties.deviceDetail.operatingSystem principal.platform_version Si operatingSystem empieza por Win, Mac o Lin, se asigna a principal.platform.
properties.deviceDetail.trustType principal.asset.attribute.labels  
properties.EventData.AuthenticationPackageName security_result.about.resource.name  
properties.EventData.CallerProcessId principal.process.pid  
properties.EventData.CallerProcessName principal.process.file.full_path  
properties.EventData.CertIssuerName additional.fields  
properties.EventData.CertSerialNumber about.artifact.last_https_certificate.serial_number  
properties.EventData.CertThumbprint additional.fields  
properties.EventData.HandleId target.resource.attribute.labels  
properties.EventData.ImpersonationLevel additional.fields  
properties.EventData.IpAddress principal.ip
principal.asset.ip
 
properties.EventData.IpPort principal.port  
properties.EventData.KeyLength additional.fields  
properties.EventData.LmPackageName target.resource.attribute.labels  
properties.EventData.LogonGuid security_result.detection_fields  
properties.EventData.LogonProcessName target.process.file.names  
properties.EventData.LogonType extensions.auth.auth_details  
properties.EventData.NewSd security_result.detection_fields  
properties.EventData.ObjectName target.resource.name  
properties.EventData.ObjectServer target.resource.attribute.labels  
properties.EventData.ObjectType target.resource.resource_subtype  
properties.EventData.OldSd security_result.detection_fields  
properties.EventData.PreAuthType extensions.auth.mechanism  
properties.EventData.ProcessId target.process.pid  
properties.EventData.ProcessName" target.process.file.full_path  
properties.EventData.ServiceName target.application  
properties.EventData.ServiceSid target.resource.user.windows_sid  
properties.EventData.Source principal.ip
principal.asset.ip
 
properties.EventData.Status security_result.detection_fields  
properties.EventData.SubjectDomainName principal.administrative_domain  
properties.EventData.SubjectLogonId principal.resource.attribute.labels  
properties.EventData.SubjectUserName principal.user.userid  
properties.EventData.SubjectUserSid principal.user.windows_sid  
properties.EventData.TargetDomainName target.administrative_domain  
properties.EventData.TargetLogonId target.resource.attribute.labels  
properties.EventData.TargetSid target.user.windows_sid  
properties.EventData.TargetUserName target.user.userid  
properties.EventData.TargetUserSid target.user.windows_sid  
properties.EventData.TicketEncryptionType security_result.detection_fields  
properties.EventData.TicketOptions security_result.detection_fields"  
properties.EventData.TransmittedServices security_result.detection_fields  
properties.EventData.WorkstationName target.hostname
target.asset.hostname
 
properties.flaggedForReview additional.fields  
properties.homeTenantId target.resource.attribute.labels  
properties.incomingTokenType additional.fields  
properties.initiatedBy.app.displayName principal.user.user_display_name  
properties.initiatedBy.user.displayName principal.user.user_display_name  
properties.initiatedBy.user.id principal.user.product_object_id  
properties.initiatedBy.user.ipAddress principal.ip,principal.asset.ip  
properties.ipAddressFromResourceProvider principal.resource.attribute.labels  
properties.isInteractive additional.fields  
properties.isTenantRestricted additional.fields  
properties.isThroughGlobalSecureAccess additional.fields  
properties.location.geoCoordinates.altitude additional.fields  
properties.loggedByService observer.application  
properties.mfaDetail.authDetail principal.user.phone_numbers  
properties.operationType target.resource.attribute.labels  
properties.originalRequestId network.session_id  
properties.originalTransferMethod additional.fields  
properties.processingTimeInMilliseconds additional.fields  
properties.RecordId metadata.product_log_id  
properties.requestId security_result.detection_fields  
properties.requestMethod network.http.method  
properties.requestUri network.http.referral_url  
properties.resourceDisplayName target.resource.name  
properties.resourceId target.resource.attribute.labels  
properties.resourceOwnerTenantId target.resource.attribute.labels  
properties.resourceTenantId target.resource.attribute.labels  
properties.responseSizeBytes network.received_bytes  
properties.responseStatusCode network.http.response_code  
properties.resultReason additional.fields
security_result.summary
 
properties.resultType additional.fields  
properties.riskDetail security_result.detection_fields  
properties.riskEventType security_result.detection_fields  
properties.riskLastUpdatedDateTime security_result.detection_fields  
properties.riskLevel security_result.detection_fields  
properties.riskLevelAggregated security_result.detection_fields  
properties.riskLevelDuringSignIn security_result.detection_fields  
properties.riskState security_result.detection_fields  
properties.riskType security_result.detection_fields  
properties.rngcStatus additional.fields  
properties.roles principal.user.attribute.roles  
properties.scopes security_result.detection_fields  
properties.servicePrincipalCredentialKeyId additional.fields  
properties.sessionLifetimePolicies security_result.detection_fields  
properties.signInActivityId additional.fields  
properties.SignInBondData.DeviceDetails.DeviceTrustType principal.asset.attribute.labels  
properties.SignInBondData.DeviceDetails.IsCompliant security_result.rule_labels  
properties.SignInBondData.DeviceDetails.IsManaged principal.asset.attribute.labels  
properties.SignInBondData.DisplayDetails.AttemptedUsername principal.user.email_addresses  
properties.SignInBondData.DisplayDetails.ProxyRestrictionTargetTenantName additional.fields  
properties.SignInBondData.DisplayDetails.ResourceDisplayName target.resource.name  
properties.SignInBondData.LocationDetails.IPChain target.ip  
properties.SignInBondData.LocationDetails.Latitude additional.fields  
properties.SignInBondData.LocationDetails.Longitude additional.fields  
properties.SignInBondData.MfaDetails additional.fields  
properties.SignInBondData.ProtocolDetails.AuthenticationMethodsUsed extensions.auth.auth_details  
properties.SignInBondData.ProtocolDetails.DomainHintPresent additional.fields  
properties.SignInBondData.ProtocolDetails.IsInteractive additional.fields  
properties.SignInBondData.ProtocolDetails.LoginHintPresent additional.fields  
properties.SignInBondData.ProtocolDetails.NetworkLocation additional.fields"  
properties.SignInBondData.ProtocolDetails.Protocol security_result.detection_fields Si properties.SignInBondData.ProtocolDetails.Protocol == WSTrust, se asigna a security_result.detection_fields. De lo contrario, se asigna a network.application_protocol.
properties.SignInBondData.RamDetails.RamRecommendedAction additional.fields  
properties.SignInBondData.RamDetails.RamRecommender additional.fields  
properties.signInTokenProtectionStatus additional.fields  
properties.ssoExtensionVersion additional.fields  
properties.status.errorCode security_result.detection_fields
security_result.action
 
properties.targetResources target.resource.attribute.labels  
properties.tenantGeo Geolocation.country_or_region
properties.tokenIssuerName additional.fields  
properties.tokenProtectionStatusDetails.signInSessionStatus additional.fields  
properties.tokenProtectionStatusDetails.signInSessionStatusCode additional.fields  
properties.userDisplayName principal.user.user_display_name  
properties.wids additional.fields  
proxyAddresses user.email_addresses
user.group_identifiers
Cada dirección de la matriz proxyAddresses se asigna a user.email_addresses o user.group_identifiers en función de si empieza por smtp o SMTP. Si la dirección empieza por smtp o SMTP, se quita el prefijo smtp: o SMTP:, se extrae la dirección de correo restante y se asigna a user.email_addresses.
record.CorrelationId additional.fields  
record.CrossTenantAccessType additional.fields  
record.DeviceDetail.deviceId network.session_id  
record.DeviceDetail.operatingSystem principal.platform_version Si operatingSystem empieza por Win, Mac o Lin, se asigna a principal.platform.
record.IsInteractive additional.fields  
record.level security_result.severity_details Si record_level está en ["INFORMATION", "INFORMATIONAL", "0", "4", "WARNING", "1", "3","ERROR", "2","CRITICAL"], se asigna a security_result.severity.
record.location principal.location.name  
record.properties.appServicePrincipalId additional.fields  
record.properties.authenticationProtocol additional.fields  
record.properties.autonomousSystemNumber principal.resource.attribute.labels  
record.properties.C_DeviceId principal.asset.asset_id  
record.properties.crossTenantAccessType additional.fields  
record.properties.deviceDetail.isCompliant security_result.rule_labels  
record.properties.deviceDetail.isManaged principal.asset.attribute.labels  
record.properties.deviceDetail.trustType principal.asset.attribute.labels  
record.properties.flaggedForReview additional.fields  
record.properties.incomingTokenType additional.fields  
record.properties.isInteractive extensions.auth.mechanism  
record.properties.isTenantRestricted additional.fields  
record.properties.isThroughGlobalSecureAccess additional.fields  
record.properties.location target.location.name  
record.properties.originalTransferMethod additional.fields  
record.properties.resourceDisplayName principal.resource.name  
record.properties.riskDetail security_result.detection_fields  
record.properties.riskLevelAggregated security_result.detection_fields  
record.properties.riskLevelDuringSignIn security_result.detection_fields  
record.properties.riskState security_result.detection_fields  
record.properties.rngcStatus additional.fields  
record.properties.roles principal.user.attribute.roles  
record.properties.scopes security_result.detection_fields  
record.properties.servicePrincipalId target.resource.attribute.labels  
record.properties.servicePrincipalId principal.user.userid  
record.properties.signInTokenProtectionStatus additional.fields  
record.properties.ssoExtensionVersion additional.fields  
record.properties.status.additionalDetails additional.fields  
record.properties.tokenProtectionStatusDetails.signInSessionStatus additional.fields  
record.properties.tokenProtectionStatusDetails.signInSessionStatusCode additional.fields  
record.RiskDetail security_result.detection_fields  
record.RiskEventTypes security_result.detection_fields  
record.RiskLevelAggregated security_result.detection_fields  
record.RiskLevelDuringSignIn security_result.detection_fields  
record.RiskState security_result.detection_fields  
refreshTokensValidFromDateTime user.attribute.labels.value (clave: refreshTokensValidFromDateTime) Se asigna desde el campo refreshTokensValidFromDateTime del registro sin procesar y se añade como etiqueta con la clave refreshTokensValidFromDateTime.
resourceOwnerTenantId target.resource.attribute.labels  
resourceTenantId target.resource.attribute.labels  
resultDescription security_result.description  
resultReason additional.fields  
resultType additional.fields  
riskDetail security_result.detection_fields  
riskLevelAggregated security_result.detection_fields  
riskLevelDuringSignIn security_result.detection_fields  
riskState security_result.detection_fields  
sAMAccountName user.userid  
servicePrincipalCredentialKeyId additional.fields  
servicePrincipalCredentialThumbprint additional.fields  
servicePrincipalId target.resource.attribute.labels  
servicePrincipalName additional.fields  
sessionId network.session_id  
signInIdentifier target.user.userid  
signInIdentifierType additional.fields  
signInTokenProtectionStatus additional.fields  
state user.personal_address.state  
status.additionalDetails additional.fields  
streetAddress user.personal_address.name  
surname user.last_name  
targets.modifiedProperties target.resource.attribute.labels  
tokenIssuerName additional.fields  
tokenIssuerType additional.fields  
tokenProtectionStatusDetails.signInSessionStatus security_result.detection_fields  
uniqueTokenIdentifier additional.fields  
usageLocation user.personal_address.country_or_region Si country está vacío, el valor se asigna a user.personal_address.country_or_region.
userDisplayName principal.user.user_display_name  
userId principal.user.product_object_id  
userPrincipalName user.email_addresses Si userPrincipalName empieza por svc-, user_role.type se define como SERVICE_ACCOUNT.
userPrincipalName user_role.type Si userPrincipalName empieza por svc-, user_role.type se define como SERVICE_ACCOUNT.
userType additional.fields  
N/A event.idm.entity.metadata.vendor_name Su valor debe ser Microsoft.
N/A event.idm.entity.metadata.product_name Su valor debe ser Azure Active Directory.
N/A event.idm.entity.metadata.entity_type Su valor debe ser USER.
N/A event.idm.entity.metadata.collected_timestamp Asigna el valor del campo create_time del registro sin procesar.

Referencia de delta de asignación de UDM

El 1 de enero del 2026, Google SecOps lanzó una nueva versión del analizador de Azure AD, que incluye cambios significativos en la asignación de campos de registro de Azure AD a campos de UDM y en la asignación de tipos de eventos.

Delta de asignación de campos de registro

En la siguiente tabla se muestra la diferencia de asignación de los campos de registro de Azure AD a UDM que se expusieron antes del 1 de enero del 2026 y posteriormente (se indican en las columnas Asignación antigua y Asignación actual, respectivamente):

Campo de registro Asignación antigua Asignación actual
additionalDetails security_result.description additional.fields
browser principal.resource.attribute.labels network.http.user_agent
browser principal.resource.attribute.labels network.http.user_agent
deviceDetail.displayName principal.asset.hardware principal.hostname,principal.asset.hostname
errorCode security_result.rule_id security_result.detection_fields
failureReason additional.fields security_result.description
identity target.user.user_display_name principal.user.user_display_name
loggedByService target.application observer.application
operationName additional.fields metadata.product_event_type
OrganizationId principal.resource.id principal.resource.product_object_id
properties.homeTenantId additional.fields target.resource.attribute.labels
properties.initiatedBy.user.id principal.user.windows_sid principal.user.product_object_id
properties.resourceOwnerTenantId additional.fields target.resource.attribute.labels
properties.riskDetail additional.fields security_result.detection_fields
properties.riskEventType additional.fields security_result.detection_fields
properties.riskLastUpdatedDateTime additional.fields security_result.detection_fields
properties.riskLevel additional.fields security_result.detection_fields
properties.riskLevelAggregated additional.fields security_result.detection_fields
properties.riskLevelDuringSignIn additional.fields security_result.detection_fields
properties.riskState additional.fields security_result.detection_fields
properties.riskType additional.fields security_result.detection_fields
properties.userDisplayName target.user.user_display_name principal.user.user_display_name
record.CorrelationId metadata.product_log_id additional.fields
record.properties.C_DeviceId additional.fields principal.asset.asset_id
record.properties.resourceDisplayName target.resource.attribute.labels principal.resource.name
record.properties.riskDetail additional.fields security_result.detection_fields
record.properties.riskLevelAggregated additional.fields security_result.detection_fields
record.properties.riskLevelDuringSignIn additional.fields security_result.detection_fields
record.properties.riskState additional.fields security_result.detection_fields
record.properties.roles target.user.role_name principal.user.attribute.roles
record.properties.servicePrincipalId additional.fields target.resource.attribute.labels
record.properties.servicePrincipalId additional.fields principal.user.userid
record.RiskDetail target.resource.attribute.labels security_result.detection_fields
record.RiskEventTypes target.resource.attribute.labels security_result.detection_fields
record.RiskLevelAggregated target.resource.attribute.labels security_result.detection_fields
record.RiskState target.resource.attribute.labels security_result.detection_fields
resultType security_result.rule_id additional.fields
riskDetail additional.fields security_result.detection_fields
riskLevelAggregated additional.fields security_result.detection_fields
riskLevelDuringSignIn additional.fields security_result.detection_fields
riskState additional.fields security_result.detection_fields
riskState additional.fields security_result.detection_fields
status.additionalDetails security_result.description additional.fields
userDisplayName target.user.user_display_name principal.user.user_display_name
userId target.user.product_object_id principal.user.product_object_id

Delta de asignación de tipos de eventos

En la siguiente tabla se muestra la diferencia en la gestión de los tipos de eventos de Azure AD antes del 1 de enero del 2026 y después (se indican en las columnas Tipo de evento antiguo y Tipo de evento actual, respectivamente):

ID de evento del registro Old event_type Current event_type Observación
has_resource = true GENERIC_EVENT USER_RESOURCE_ACCESS El tipo de evento se asigna a USER_RESOURCE_ACCESS en los casos en los que el evento se refiere a un recurso (indicado por has_resource = true).
operationName = Add member to group USER_CHANGE_PERMISSIONS GROUP_MODIFICATION El tipo de evento se asigna a GROUP_MODIFICATION para las operaciones que implican específicamente añadir un miembro a un grupo (donde operationName = Add member to group).

¿Necesitas más ayuda? Recibe respuestas de los miembros de la comunidad y de los profesionales de Google SecOps.