Recopila registros de Microsoft Azure AD
En este documento, se describe cómo recopilar 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 Transferencia de datos a Google Security Operations.
Una etiqueta de transferencia identifica el analizador que normaliza los datos de registro sin procesar en formato UDM estructurado.
Antes de comenzar
Asegúrate de cumplir con los siguientes requisitos previos:
- Una suscripción a Azure a la que puedas acceder
- Un rol de administrador global o de administrador de Azure AD
- Un directorio de Azure AD (inquilino) en Azure
Cómo configurar Azure AD
- Accede al portal de Azure.
- Ve a Página principal > Registro de la app, selecciona una aplicación registrada o registra una aplicación si aún no creaste una.
- Para registrar una aplicación, en la sección Registro de aplicaciones, haz clic en Nuevo registro.
- En el campo Nombre, proporciona el nombre visible de tu aplicación.
- En la sección Tipos de cuentas compatibles, selecciona la opción requerida para especificar quién puede usar la aplicación o acceder a la API.
- Haz clic en Registrar.
- Ve a la página Overview y copia el ID de la aplicación (cliente) y el ID del directorio (inquilino), que son necesarios para configurar el feed de Google Security Operations.
- Haz clic en Permisos de API.
- Haz clic en Add a permission y, luego, selecciona Microsoft Graph en el panel nuevo.
- Haz clic en Permisos de aplicación.
- Selecciona los permisos AuditLog.Read.All, Directory.Read.All y SecurityEvents.Read.All. Asegúrate de que los permisos sean permisos de la aplicación y no permisos delegados.
- Haz clic en Grant admin consent for default directory. Las aplicaciones están autorizadas para llamar a las APIs cuando los usuarios o administradores les otorgan permisos como parte del proceso de consentimiento.
- Ve a Configuración > Administrar.
- Haz clic en Certificados y Secrets.
- Haz clic en Nuevo secreto de cliente. En el campo Value, aparece el secreto del cliente.
- Copia el valor del secreto del cliente. El valor se muestra solo en el momento de la creación y es necesario para el registro de la app de Azure y para configurar el feed de Google Security Operations.
Configura feeds
Existen dos puntos de entrada diferentes para configurar feeds en la plataforma de Google SecOps:
- Configuración de SIEM > Feeds > Agregar un feed nuevo
- Centro de contenido > Paquetes de contenido > Comenzar
Cómo configurar el feed de Microsoft Entra ID (Azure AD)
- Haz clic en el paquete Azure Platform.
- Busca el tipo de registro Azure AD.
Especifica valores para los siguientes campos:
- Tipo de fuente: API de terceros (recomendado)
- ID de cliente de OAUTH: Especifica el ID de cliente que obtuviste antes.
- Secreto del cliente de OAUTH: Especifica el secreto del cliente que obtuviste antes.
- ID de arrendatario: Especifica el ID de arrendatario que obtuviste antes.
- Ruta de acceso completa de la API: URL del extremo de API de REST de Microsoft Graph.
- Extremo de autenticación de la API: Es el extremo de autenticación de Microsoft Active Directory.
Opciones avanzadas
- Nombre del feed: Es un valor completado previamente que identifica el feed.
- Espacio de nombres del recurso: Espacio de nombres asociado al feed.
- Etiquetas de transferencia: Son las etiquetas que se aplican a todos los eventos de este feed.
Haz clic en Crear feed.
Para obtener más información sobre cómo configurar varios feeds para diferentes tipos de registros dentro de esta familia de productos, consulta Configura 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 Configuración de feeds por tipo.
Referencia de la asignación de campos
Este código del analizador transforma los registros sin procesar de Azure AD en formato JSON en un modelo de datos unificado (UDM). Primero, normaliza los datos quitando los campos innecesarios y, luego, extrae la información pertinente, como los detalles del usuario, las marcas de tiempo y los detalles específicos del evento, y los asigna a los campos correspondientes del UDM para garantizar una representación y un análisis coherentes.
Tabla de asignación de UDM
Campo de registro | Asignación de UDM | Lógica |
---|---|---|
activityDateTime | read_only_udm.metadata.event_timestamp.seconds | El valor se extrae del campo activityDateTime y se convierte en segundos desde la época. |
activityDisplayName | read_only_udm.security_result.summary | El valor se asigna directamente desde el campo activityDisplayName . |
additionalDetails.0.value | read_only_udm.network.http.user_agent | El valor se asigna directamente desde el campo additionalDetails.0.value . |
additionalDetails.1.key | read_only_udm.target.resource.attribute.labels.key | El valor se asigna directamente desde el campo additionalDetails.1.key . |
additionalDetails.1.value | read_only_udm.target.resource.attribute.labels.value | El valor se asigna directamente desde el campo additionalDetails.1.value . |
am_category | read_only_udm.metadata.description | El valor se asigna directamente desde el campo am_category . |
am_tenantId | read_only_udm.metadata.product_deployment_id | El valor se asigna directamente desde el campo am_tenantId . |
appDisplayName | read_only_udm.target.application | El valor se asigna directamente desde el campo appDisplayName . Si appDisplayName está vacío, el valor se toma de resourceDisplayName . |
appId | read_only_udm.target.resource.attribute.labels.value | El valor se asigna directamente desde el campo appId . |
appliedConditionalAccessPolicies.displayName | read_only_udm.about.user.user_display_name | El valor se asigna directamente desde el campo appliedConditionalAccessPolicies.displayName . |
appliedConditionalAccessPolicies.enforcedGrantControls | read_only_udm.security_result.rule_labels.value | El valor se asigna directamente desde el campo appliedConditionalAccessPolicies.enforcedGrantControls . |
appliedConditionalAccessPolicies.enforcedSessionControls | read_only_udm.security_result.rule_labels.value | El valor se asigna directamente desde el campo appliedConditionalAccessPolicies.enforcedSessionControls . |
appliedConditionalAccessPolicies.id | read_only_udm.about.user.userid | El valor se asigna directamente desde el campo appliedConditionalAccessPolicies.id . |
appliedConditionalAccessPolicies.result | read_only_udm.about.labels.value | El valor se asigna directamente desde el campo appliedConditionalAccessPolicies.result . |
authenticationDetails.authenticationMethod | read_only_udm.security_result.detection_fields.value | El valor se asigna directamente desde el campo authenticationDetails.authenticationMethod . |
authenticationDetails.authenticationMethodDetail | read_only_udm.security_result.detection_fields.value | El valor se asigna directamente desde el campo authenticationDetails.authenticationMethodDetail . |
authenticationDetails.authenticationStepDateTime | read_only_udm.security_result.detection_fields.value | El valor se asigna directamente desde el campo authenticationDetails.authenticationStepDateTime . |
authenticationDetails.authenticationStepRequirement | read_only_udm.security_result.detection_fields.value | El valor se asigna directamente desde el campo authenticationDetails.authenticationStepRequirement . |
authenticationDetails.authenticationStepResultDetail | read_only_udm.security_result.detection_fields.value | El valor se asigna directamente desde el campo authenticationDetails.authenticationStepResultDetail . |
authenticationProcessingDetails.key | read_only_udm.additional.fields.key | El valor se asigna directamente desde el campo authenticationProcessingDetails.key , con el prefijo "authenticationProcessingDetails - ". |
authenticationProcessingDetails.value | read_only_udm.additional.fields.value.string_value | El valor se asigna directamente desde el campo authenticationProcessingDetails.value . |
callerIpAddress | read_only_udm.principal.ip | El valor se asigna directamente desde el campo callerIpAddress . |
callerIpAddress | read_only_udm.principal.asset.ip | El valor se asigna directamente desde el campo callerIpAddress . |
category | read_only_udm.metadata.description | El valor se asigna directamente desde el campo category . |
clientAppUsed | read_only_udm.principal.application | El valor se asigna directamente desde el campo clientAppUsed . |
conditionalAccessStatus | read_only_udm.additional.fields.value.string_value | El valor se asigna directamente desde el campo conditionalAccessStatus . |
correlationId | read_only_udm.network.session_id | El valor se asigna directamente desde el campo correlationId . |
correlationId | read_only_udm.security_result.detection_fields.value | El valor se asigna directamente desde el campo correlationId . |
createdDateTime | read_only_udm.metadata.event_timestamp.seconds | El valor se extrae del campo createdDateTime y se convierte en segundos desde la época. |
deviceDetail.browser | read_only_udm.network.http.user_agent | El valor se asigna directamente desde el campo deviceDetail.browser . |
deviceDetail.deviceId | read_only_udm.principal.asset.asset_id | El valor se asigna directamente desde el campo deviceDetail.deviceId , con el prefijo "ID de dispositivo:". |
deviceDetail.deviceId | read_only_udm.principal.asset_id | El valor se asigna directamente desde el campo deviceDetail.deviceId , con el prefijo "ID de dispositivo:". |
deviceDetail.displayName | read_only_udm.principal.asset.hostname | El valor se asigna directamente desde el campo deviceDetail.displayName . |
deviceDetail.isCompliant | read_only_udm.principal.asset.attribute.labels.value | El valor se asigna directamente desde el campo deviceDetail.isCompliant . |
deviceDetail.isManaged | read_only_udm.principal.asset.attribute.labels.value | El valor se asigna directamente desde el campo deviceDetail.isManaged . |
deviceDetail.operatingSystem | read_only_udm.principal.platform_version | El valor se asigna directamente desde el campo deviceDetail.operatingSystem . |
deviceDetail.trustType | read_only_udm.principal.asset.attribute.labels.value | El valor se asigna directamente desde el campo deviceDetail.trustType . |
durationMs | read_only_udm.additional.fields.value.string_value | El valor se asigna directamente desde el campo durationMs . |
errorCode | read_only_udm.security_result.rule_id | El valor se asigna directamente desde el campo errorCode . |
nivel empresarial | read_only_udm.target.user.user_display_name | El valor se asigna directamente desde el campo identity si es diferente de userId y no coincide con un patrón de dirección de correo electrónico. |
initiatedBy.user.displayName | read_only_udm.principal.user.user_display_name | El valor se asigna directamente desde el campo initiatedBy.user.displayName . |
initiatedBy.user.id | read_only_udm.principal.user.userid | El valor se asigna directamente desde el campo initiatedBy.user.id . |
initiatedBy.user.ipAddress | read_only_udm.principal.ip | El valor se asigna directamente desde el campo initiatedBy.user.ipAddress . |
initiatedBy.user.ipAddress | read_only_udm.principal.asset.ip | El valor se asigna directamente desde el campo initiatedBy.user.ipAddress . |
initiatedBy.user.userPrincipalName | read_only_udm.principal.user.email_addresses | El valor se asigna directamente desde el campo initiatedBy.user.userPrincipalName si coincide con un patrón de dirección de correo electrónico. |
ipAddress | read_only_udm.principal.ip | El valor se extrae del campo ipAddress con un patrón de Grok para extraer la dirección IP. |
ipAddress | read_only_udm.principal.asset.ip | El valor se extrae del campo ipAddress con un patrón de Grok para extraer la dirección IP. |
isInteractive | read_only_udm.extensions.auth.mechanism | El valor se asigna a "INTERACTIVE" si isInteractive es "true"; de lo contrario, se asigna a "MECHANISM_OTHER". |
isInteractive | read_only_udm.security_result.detection_fields.value | El valor se asigna directamente desde el campo isInteractive . |
level | read_only_udm.security_result.severity | El valor se asigna desde el campo level según la siguiente lógica: * "Information", "Informational", "0" y "4" se asignan a "INFORMATIONAL". * "Warning", "1" y "3" se asignan a "MEDIUM". * "Error" y "2" se asignan a "ERROR". * "Critical", "CRITICAL" y "critical" se asignan a "CRITICAL". |
level | read_only_udm.security_result.severity_details | El valor se asigna directamente desde el campo level . |
location.city | read_only_udm.principal.location.city | El valor se asigna directamente desde el campo location.city . |
location.countryOrRegion | read_only_udm.principal.location.country_or_region | El valor se asigna directamente desde el campo location.countryOrRegion . |
location.geoCoordinates.latitude | read_only_udm.principal.location.region_coordinates.latitude | El valor se asigna directamente desde el campo location.geoCoordinates.latitude y se convierte en un número de punto flotante. |
location.geoCoordinates.latitude | read_only_udm.principal.location.region_latitude | El valor se asigna directamente desde el campo location.geoCoordinates.latitude y se convierte en un número de punto flotante. |
location.geoCoordinates.longitude | read_only_udm.principal.location.region_coordinates.longitude | El valor se asigna directamente desde el campo location.geoCoordinates.longitude y se convierte en un número de punto flotante. |
location.geoCoordinates.longitude | read_only_udm.principal.location.region_longitude | El valor se asigna directamente desde el campo location.geoCoordinates.longitude y se convierte en un número de punto flotante. |
location.state | read_only_udm.principal.location.state | El valor se asigna directamente desde el campo location.state . |
networkLocationDetails.networkNames | read_only_udm.additional.fields.value.string_value | El valor se genera concatenando todos los valores del array networkLocationDetails.networkNames , separados por comas. |
networkLocationDetails.networkType | read_only_udm.additional.fields.value.string_value | El valor se asigna directamente desde el campo networkLocationDetails.networkType . |
networkLocationDetails.networkType | read_only_udm.security_result.detection_fields.value | El valor se asigna directamente desde el campo networkLocationDetails.networkType . |
operationName | read_only_udm.metadata.event_type | El valor se asigna a "USER_LOGIN" si operationName es "Actividad de acceso", a "USER_CHANGE_PERMISSIONS" si operationName es "Agregar miembro al grupo" y a "USER_RESOURCE_UPDATE_PERMISSIONS" si operationName es "Agregar asignación de rol de la app a la entidad de servicio". De lo contrario, el valor se determina según la presencia de otros campos: * "USER_LOGIN" si has_target_user es "true". * "USER_UNCATEGORIZED" si has_principal_user es "true". * "STATUS_UPDATE" si has_principal es "true". * "GENERIC_EVENT" en otros casos |
operationType | read_only_udm.security_result.action_details | El valor se asigna directamente desde el campo operationType . |
properties.activity | read_only_udm.security_result.summary | El valor se asigna directamente desde el campo properties.activity . |
properties.activityDateTime | read_only_udm.metadata.event_timestamp.seconds | El valor se extrae del campo properties.activityDateTime y se convierte en segundos desde la época. |
properties.additionalInfo | read_only_udm.network.http.user_agent | El valor se extrae del campo properties.additionalInfo analizando la cadena JSON y extrayendo el valor correspondiente a la clave "userAgent". |
properties.additionalInfo | read_only_udm.target.url | El valor se extrae del campo properties.additionalInfo analizando la cadena JSON y extrayendo el valor correspondiente a la clave "alertUrl". |
properties.appId | read_only_udm.target.resource.attribute.labels.value | El valor se asigna directamente desde el campo properties.appId . |
properties.appDisplayName | read_only_udm.target.application | El valor se asigna directamente desde el campo properties.appDisplayName . |
properties.appliedConditionalAccessPolicies.displayName | read_only_udm.security_result.rule_name | El valor se asigna directamente desde el campo properties.appliedConditionalAccessPolicies.displayName . |
properties.appliedConditionalAccessPolicies.id | read_only_udm.security_result.rule_id | El valor se asigna directamente desde el campo properties.appliedConditionalAccessPolicies.id . |
properties.appliedConditionalAccessPolicies.result | read_only_udm.security_result.detection_fields.value | El valor se asigna directamente desde el campo properties.appliedConditionalAccessPolicies.result . |
properties.authenticationDetails.authenticationMethod | read_only_udm.security_result.detection_fields.value | El valor se asigna directamente desde el campo properties.authenticationDetails.authenticationMethod . |
properties.authenticationDetails.authenticationMethodDetail | read_only_udm.security_result.detection_fields.value | El valor se asigna directamente desde el campo properties.authenticationDetails.authenticationMethodDetail . |
properties.authenticationDetails.authenticationStepDateTime | read_only_udm.security_result.detection_fields.value | El valor se asigna directamente desde el campo properties.authenticationDetails.authenticationStepDateTime . |
properties.authenticationDetails.authenticationStepRequirement | read_only_udm.security_result.detection_fields.value | El valor se asigna directamente desde el campo properties.authenticationDetails.authenticationStepRequirement . |
properties.authenticationDetails.authenticationStepResultDetail | read_only_udm.security_result.detection_fields.value | El valor se asigna directamente desde el campo properties.authenticationDetails.authenticationStepResultDetail . |
properties.authenticationProcessingDetails.key | read_only_udm.additional.fields.key | El valor se asigna directamente desde el campo properties.authenticationProcessingDetails.key , con el prefijo "properties authenticationProcessingDetails - ". |
properties.authenticationProcessingDetails.value | read_only_udm.additional.fields.value.string_value | El valor se asigna directamente desde el campo properties.authenticationProcessingDetails.value . |
properties.authenticationRequirement | read_only_udm.additional.fields.value.string_value | El valor se asigna directamente desde el campo properties.authenticationRequirement . |
properties.authenticationRequirementPolicies.detail | read_only_udm.security_result.detection_fields.value | El valor se asigna directamente desde el campo properties.authenticationRequirementPolicies.detail . |
properties.authenticationRequirementPolicies.requirementProvider | read_only_udm.security_result.detection_fields.value | El valor se asigna directamente desde el campo properties.authenticationRequirementPolicies.requirementProvider . |
properties.clientAppUsed | read_only_udm.principal.application | El valor se asigna directamente desde el campo properties.clientAppUsed . |
properties.conditionalAccessStatus | read_only_udm.additional.fields.value.string_value | El valor se asigna directamente desde el campo properties.conditionalAccessStatus . |
properties.createdDateTime | read_only_udm.metadata.event_timestamp.seconds | El valor se extrae del campo properties.createdDateTime y se convierte en segundos desde la época. |
properties.crossTenantAccessType | read_only_udm.additional.fields.value.string_value | El valor se asigna directamente desde el campo properties.crossTenantAccessType . |
properties.detectedDateTime | read_only_udm.additional.fields.value.string_value | El valor se asigna directamente desde el campo properties.detectedDateTime . |
properties.detectionTimingType | read_only_udm.additional.fields.value.string_value | El valor se asigna directamente desde el campo properties.detectionTimingType . |
properties.homeTenantId | read_only_udm.additional.fields.value.string_value | El valor se asigna directamente desde el campo properties.homeTenantId . |
properties.id | read_only_udm.metadata.product_log_id | El valor se asigna directamente desde el campo properties.id . |
properties.initiatedBy.user.displayName | read_only_udm.principal.user.user_display_name | El valor se asigna directamente desde el campo properties.initiatedBy.user.displayName . |
properties.initiatedBy.user.id | read_only_udm.principal.user.windows_sid | El valor se asigna directamente desde el campo properties.initiatedBy.user.id . |
properties.initiatedBy.user.ipAddress | read_only_udm.principal.ip | El valor se asigna directamente desde el campo properties.initiatedBy.user.ipAddress . |
properties.initiatedBy.user.ipAddress | read_only_udm.principal.asset.ip | El valor se asigna directamente desde el campo properties.initiatedBy.user.ipAddress . |
properties.initiatedBy.user.userPrincipalName | read_only_udm.principal.user.userid | El valor se asigna directamente desde el campo properties.initiatedBy.user.userPrincipalName si no coincide con un patrón de dirección de correo electrónico. |
properties.initiatedBy.user.userPrincipalName | read_only_udm.principal.user.email_addresses | El valor se asigna directamente desde el campo properties.initiatedBy.user.userPrincipalName si coincide con un patrón de dirección de correo electrónico. |
properties.ipAddress | read_only_udm.principal.ip | El valor se extrae del campo properties.ipAddress con un patrón de Grok para extraer la dirección IP. |
properties.ipAddress | read_only_udm.principal.asset.ip | El valor se extrae del campo properties.ipAddress con un patrón de Grok para extraer la dirección IP. |
properties.isGuest | read_only_udm.additional.fields.value.string_value | El valor se asigna directamente desde el campo properties.isGuest . |
properties.isDeleted | read_only_udm.additional.fields.value.string_value | El valor se asigna directamente desde el campo properties.isDeleted . |
properties.isProcessing | read_only_udm.additional.fields.value.string_value | El valor se asigna directamente desde el campo properties.isProcessing . |
properties.lastUpdatedDateTime | read_only_udm.additional.fields.value.string_value | El valor se asigna directamente desde el campo properties.lastUpdatedDateTime . |
properties.location.city | read_only_udm.principal.location.city | El valor se asigna directamente desde el campo properties.location.city . |
properties.location.countryOrRegion | read_only_udm.principal.location.country_or_region | El valor se asigna directamente desde el campo properties.location.countryOrRegion . |
properties.location.geoCoordinates.latitude | read_only_udm.principal.location.region_coordinates.latitude | El valor se asigna directamente desde el campo properties.location.geoCoordinates.latitude y se convierte en un número de punto flotante. |
properties.location.geoCoordinates.latitude | read_only_udm.principal.location.region_latitude | El valor se asigna directamente desde el campo properties.location.geoCoordinates.latitude y se convierte en un número de punto flotante. |
properties.location.geoCoordinates.longitude | read_only_udm.principal.location.region_coordinates.longitude | El valor se asigna directamente desde el campo properties.location.geoCoordinates.longitude y se convierte en un número de punto flotante. |
properties.location.geoCoordinates.longitude | read_only_udm.principal.location.region_longitude | El valor se asigna directamente desde el campo properties.location.geoCoordinates.longitude y se convierte en un número de punto flotante. |
properties.location.state | read_only_udm.principal.location.state | El valor se asigna directamente desde el campo properties.location.state . |
properties.networkLocationDetails.networkNames | read_only_udm.additional.fields.value.string_value | El valor se genera concatenando todos los valores del array properties.networkLocationDetails.networkNames , separados por comas. |
properties.networkLocationDetails.networkType | read_only_udm.additional.fields.value.string_value | El valor se asigna directamente desde el campo properties.networkLocationDetails.networkType . |
properties.networkLocationDetails.networkType | read_only_udm.security_result.detection_fields.value | El valor se asigna directamente desde el campo properties.networkLocationDetails.networkType . |
properties.resourceServicePrincipalId | read_only_udm.target.resource.attribute.labels.value | El valor se asigna directamente desde el campo properties.resourceServicePrincipalId . |
properties.riskDetail | read_only_udm.additional.fields.value.string_value | El valor se asigna directamente desde el campo properties.riskDetail . |
properties.riskEventType | read_only_udm.additional.fields.value.string_value | El valor se asigna directamente desde el campo properties.riskEventType . |
properties.riskLastUpdatedDateTime | read_only_udm.additional.fields.value.string_value | El valor se asigna directamente desde el campo properties.riskLastUpdatedDateTime . |
properties.riskLevel | read_only_udm.additional.fields.value.string_value | El valor se asigna directamente desde el campo properties.riskLevel . |
properties.riskLevelDuringSignIn | read_only_udm.additional.fields.value.string_value | El valor se asigna directamente desde el campo properties.riskLevelDuringSignIn . |
properties.riskState | read_only_udm.additional.fields.value.string_value | El valor se asigna directamente desde el campo properties.riskState . |
properties.riskType | read_only_udm.additional.fields.value.string_value | El valor se asigna directamente desde el campo properties.riskType . |
properties.source | read_only_udm.additional.fields.value.string_value | El valor se asigna directamente desde el campo properties.source . |
properties.targetResources.0.id | read_only_udm.target.user.product_object_id | El valor se asigna directamente desde el campo properties.targetResources.0.id . |
properties.targetResources.modifiedProperties.0.newValue | read_only_udm.target.group.product_object_id | El valor se asigna directamente desde el campo properties.targetResources.modifiedProperties.0.newValue . |
properties.tokenIssuerType | read_only_udm.additional.fields.value.string_value | El valor se asigna directamente desde el campo properties.tokenIssuerType . |
properties.userAgent | read_only_udm.network.http.parsed_user_agent | El valor se asigna directamente desde el campo properties.userAgent y se convierte en un objeto de usuario-agente analizado. |
properties.userAgent | read_only_udm.network.http.user_agent | El valor se asigna directamente desde el campo properties.userAgent . |
properties.userId | read_only_udm.target.user.product_object_id | El valor se asigna directamente desde el campo properties.userId . |
properties.userPrincipalName | read_only_udm.target.user.userid | El valor se asigna directamente desde el campo properties.userPrincipalName si no coincide con un patrón de dirección de correo electrónico. |
properties.userPrincipalName | read_only_udm.target.user.email_addresses | El valor se asigna directamente desde el campo properties.userPrincipalName si coincide con un patrón de dirección de correo electrónico. |
Resultado | read_only_udm.security_result.action | El valor se asigna a "ALLOW" si result es "success". |
Resultado | read_only_udm.security_result.action_details | El valor se asigna directamente desde el campo result si result es "success". |
resultDescription | read_only_udm.security_result.description | El valor se asigna directamente desde el campo resultDescription . |
resultSignature | read_only_udm.additional.fields.value.string_value | El valor se asigna directamente desde el campo resultSignature . |
resultType | read_only_udm.security_result.action | El valor se asigna a "ALLOW" si resultType es "0". |
resultType | read_only_udm.security_result.rule_id | El valor se asigna directamente desde el campo resultType si no está vacío y no es "0". |
resultType | read_only_udm.security_result.summary | El valor se asigna a "Se produjo un acceso correcto" si resultType es "0" y a "Se produjo un acceso fallido" en caso contrario. |
resourceDisplayName | read_only_udm.target.application | El valor se asigna directamente desde el campo resourceDisplayName . |
resourceDisplayName | read_only_udm.target.resource.name | El valor se asigna directamente desde el campo resourceDisplayName . |
resourceId | read_only_udm.target.resource.id | El valor se asigna directamente desde el campo resourceId . |
resourceId | read_only_udm.target.resource.product_object_id | El valor se asigna directamente desde el campo resourceId . |
resourceServicePrincipalId | read_only_udm.target.resource.attribute.labels.value | El valor se asigna directamente desde el campo resourceServicePrincipalId . |
riskDetail | read_only_udm.additional.fields.value.string_value | El valor se asigna directamente desde el campo riskDetail . |
riskEventTypes | read_only_udm.additional.fields.value.string_value | El valor se extrae del array riskEventTypes y se asigna a un valor de cadena en el array additional.fields . |
riskEventTypes | read_only_udm.additional.fields.value.list_value.values.string_value | El valor se asigna directamente desde cada elemento del array riskEventTypes . |
riskEventTypes_v2 | read_only_udm.additional.fields.value.list_value.values.string_value | El valor se asigna directamente desde cada elemento del array riskEventTypes_v2 . |
riskLevelAggregated | read_only_udm.additional.fields.value.string_value | El valor se asigna directamente desde el campo riskLevelAggregated . |
riskLevelDuringSignIn | read_only_udm.additional.fields.value.string_value | El valor se asigna directamente desde el campo riskLevelDuringSignIn . |
riskState | read_only_udm.additional.fields.value.string_value | El valor se asigna directamente desde el campo riskState . |
status.additionalDetails | read_only_udm.security_result.description | El valor se asigna directamente desde el campo status.additionalDetails . |
status.errorCode | read_only_udm.security_result.action | El valor se asigna a "ALLOW" si status.errorCode es "0". |
status.errorCode | read_only_udm.security_result.rule_id | El valor se asigna directamente desde el campo status.errorCode si no está vacío. |
status.errorCode | read_only_udm.security_result.summary | El valor se asigna a "Se produjo un acceso correcto" si status.errorCode es "0" y a "Se produjo un acceso fallido" en caso contrario. |
status.failureReason | read_only_udm.additional.fields.value.string_value | El valor se asigna directamente desde el campo status.failureReason . |
targetResources.displayName | read_only_udm.target.resource.name | El valor se asigna directamente desde el campo targetResources.displayName . |
targetResources.id | read_only_udm.target.resource.id | El valor se asigna directamente desde el campo targetResources.id . |
targetResources.id | read_only_udm.target.resource.product_object_id | El valor se asigna directamente desde el campo targetResources.id . |
targetResources.modifiedProperties.displayName | read_only_udm.target.resource.attribute.labels.key | El valor se asigna directamente desde el campo targetResources.modifiedProperties.displayName . |
targetResources.modifiedProperties.newValue | read_only_udm.target.resource.attribute.labels.value | El valor se asigna directamente desde el campo targetResources.modifiedProperties.newValue después de quitar las comillas dobles. |
targetResources.modifiedProperties.oldValue | read_only_udm.target.resource.attribute.labels.value | El valor se asigna directamente desde el campo targetResources.modifiedProperties.oldValue . |
targetResources.type | read_only_udm.target.resource.type | El valor se asigna directamente desde el campo targetResources.type . |
targetResources.userPrincipalName | read_only_udm.target.user.user_display_name | El valor se asigna directamente desde el campo targetResources.userPrincipalName . |
tenantId | read_only_udm.metadata.product_deployment_id | El valor se asigna directamente desde el campo tenantId . |
hora | read_only_udm.metadata.event_timestamp.seconds | El valor se extrae del campo time y se convierte en segundos desde la época. |
userAgent | read_only_udm.network.http.parsed_user_agent | El valor se asigna directamente desde el campo userAgent y se convierte en un objeto de usuario-agente analizado. |
userAgent | read_only_udm.network.http.user_agent | El valor se asigna directamente desde el campo userAgent . |
userDisplayName | read_only_udm.target.user.user_display_name | El valor se asigna directamente desde el campo userDisplayName si es diferente de userId y no coincide con un patrón de dirección de correo electrónico. |
userPrincipalName | read_only_udm.principal.administrative_domain | La parte del dominio de la dirección de correo electrónico se extrae del campo userPrincipalName con un patrón grok y se asigna al campo principal.administrative_domain . |
userPrincipalName | read_only_udm.target.user.email_addresses | El valor se asigna directamente desde el campo userPrincipalName si coincide con un patrón de dirección de correo electrónico. |
userPrincipalName | read_only_udm.target.user.userid | El valor se asigna directamente desde el campo userPrincipalName si no coincide con un patrón de dirección de correo electrónico. |
userid | read_only_udm.target.user.product_object_id | El valor se asigna directamente desde el campo userId . |
read_only_udm.metadata.log_type | AZURE_AD | Este valor está codificado de forma rígida en el analizador. |
read_only_udm.metadata.vendor_name | Microsoft | Este valor está codificado de forma rígida en el analizador. |
read_only_udm.metadata.product_name | Azure AD | Este valor está codificado de forma rígida en el analizador. |
read_only_udm.extensions.auth.type | SSO | Este valor está codificado de forma rígida en el analizador. |
¿Necesitas más ayuda? Obtén respuestas de miembros de la comunidad y profesionales de Google SecOps.