Recopila registros de auditoría de Microsoft Azure AD
En este documento, se describe cómo puedes 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 al formato estructurado del UDM.
Antes de comenzar
Para completar las tareas de esta página, asegúrate de tener lo siguiente:
- Una suscripción a Azure a la que puedas acceder.
- Un rol de administrador global o de administrador de Azure AD
- Un Azure AD (usuario) en Azure.
Configura Azure AD
- Accede al portal de Azure.
- Ve a Página principal > Registro de apps, selecciona una aplicación registrada o regístrala si aún no lo hiciste.
- Para registrar una aplicación, en la sección Registro de apps, 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 Register.
- Ve a la página Descripción general y copia el ID de la aplicación (cliente) y el ID del directorio (arrendatario), que son necesarios para configurar el feed de Google Security Operations.
- Haz clic en Permisos de la API.
- Haz clic en Agregar un permiso y, luego, selecciona Microsoft Graph en el panel nuevo.
- Haz clic en Permisos de la 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 Otorgar consentimiento de administrador para el directorio predeterminado. 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 secretos.
- Haz clic en Nuevo secreto de cliente. En el campo Valor, 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 obligatorio para el registro de la app de Azure y para configurar el feed de Google Security Operations.
Configura un feed en Google Security Operations para transferir registros de auditoría de Azure AD
- Selecciona Configuración de SIEM > Feeds.
- Haz clic en Agregar nueva.
- Ingresa un nombre único para el Nombre del feed.
- Selecciona API de terceros como el Tipo de origen.
- Selecciona Auditoría de directorio de Azure AD como el Tipo de registro.
- Haz clic en Siguiente.
- Configura los siguientes parámetros de entrada obligatorios:
- ID de cliente de OAUTH: Especifica el ID de cliente que obtuviste antes.
- Secreto de cliente de OAUTH: Especifica el secreto del cliente que obtuviste antes.
- ID de inquilino: Especifica el ID de inquilino que obtuviste antes.
- Haz clic en Siguiente y, luego, en Enviar.
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. Si tienes problemas cuando creas feeds, comunícate con el equipo de asistencia de Google Security Operations.
Referencia de la asignación de campos
Este analizador procesa los registros de auditoría de directorios de Azure AD en formato JSON. Extrae campos relevantes, los transforma en un modelo de datos unificado (UDM) y enriquece los datos con contexto adicional, como detalles del usuario, direcciones IP y resultados de seguridad. El analizador también clasifica los eventos según sus características y los asigna a tipos de eventos específicos del UDM para facilitar el análisis.
Tabla de asignación de UDM
Campo de registro | Asignación de UDM | Lógica |
---|---|---|
activityDateTime | read_only_udm.metadata.event_timestamp | Asignación directa desde el campo de registro sin procesar "activityDateTime". |
activityDisplayName | read_only_udm.metadata.product_event_type | Asignación directa desde el campo de registro sin procesar "activityDisplayName". |
additionalDetails.ApplicationId | read_only_udm.additional.fields | Asignación directa desde el campo de registro sin procesar "additionalDetails", donde la clave es "ApplicationId". |
additionalDetails.Client | read_only_udm.network.http.user_agent | Asignación directa desde el campo de registro sin procesar "additionalDetails", donde la clave es "Client". |
additionalDetails.ClientIpAddress | read_only_udm.principal.ip, read_only_udm.principal.asset.ip | Asignación directa desde el campo de registro sin procesar "additionalDetails", donde la clave es "ClientIpAddress". |
additionalDetails.DomainName | read_only_udm.target.hostname, read_only_udm.target.asset.hostname | Asignación directa desde el campo de registro sin procesar "additionalDetails", donde la clave es "DomainName". |
additionalDetails.EmailAddress | read_only_udm.target.user.email_addresses | Asignación directa desde el campo de registro sin procesar "additionalDetails", donde la clave es "EmailAddress". |
additionalDetails.GrantType | read_only_udm.additional.fields | Asignación directa desde el campo de registro sin procesar "additionalDetails", donde la clave es "GrantType". |
additionalDetails.LocalAccountUsername | read_only_udm.additional.fields | Asignación directa desde el campo de registro sin procesar "additionalDetails", donde la clave es "LocalAccountUsername". |
additionalDetails.PhoneNumber | read_only_udm.target.user.phone_numbers | Asignación directa desde el campo de registro sin procesar "additionalDetails", donde la clave es "PhoneNumber". |
additionalDetails.PolicyId | read_only_udm.security_result.rule_name | Asignación directa desde el campo de registro sin procesar "additionalDetails", donde la clave es "PolicyId". |
additionalDetails.Scopes | read_only_udm.additional.fields | Asignación directa del campo de registro sin procesar "additionalDetails", donde la clave es "Scopes". |
additionalDetails.TenantId | read_only_udm.additional.fields | Asignación directa desde el campo de registro sin procesar "additionalDetails", donde la clave es "TenantId". |
additionalDetails.VerificationMethod | read_only_udm.additional.fields | Asignación directa desde el campo de registro sin procesar "additionalDetails", donde la clave es "VerificationMethod". |
appId | read_only_udm.target.process.pid | Asignación directa desde el campo de registro sin procesar "appId". |
appliedConditionalAccessPolicies | read_only_udm.about | El campo "displayName" se asigna a "read_only_udm.about.user.user_display_name" y el campo "id" se asigna a "read_only_udm.about.user.userid". El campo "result" se asigna a "read_only_udm.about.labels", con la clave establecida en "Resultado". |
category | read_only_udm.additional.fields, read_only_udm.security_result.category_details | Asignación directa desde el campo de registro sin procesar "category". La clave de "read_only_udm.additional.fields" se establece en "log_category". |
callerIpAddress | read_only_udm.principal.ip, read_only_udm.principal.asset.ip | Asignación directa desde el campo de registro sin procesar "callerIpAddress". |
clientAppUsed | read_only_udm.principal.application | Asignación directa desde el campo de registro sin procesar "clientAppUsed". |
correlationId | read_only_udm.network.session_id | Asignación directa del campo de registro sin procesar "correlationId". |
id | read_only_udm.metadata.product_log_id | Asignación directa desde el campo de registro sin procesar "id". |
nivel empresarial | read_only_udm.target.user.userid | Asignación directa desde el campo de registro sin procesar "identity". |
initiatedBy.app.appId | read_only_udm.principal.resource.attribute.labels | Asignación directa desde el campo de registro sin procesar "initiatedBy.app.appId". La clave de "read_only_udm.principal.resource.attribute.labels" se establece en "App Id". |
initiatedBy.app.displayName | read_only_udm.principal.application | Asignación directa desde el campo de registro sin procesar "initiatedBy.app.displayName". |
initiatedBy.app.servicePrincipalId | read_only_udm.principal.user.product_object_id | Asignación directa desde el campo de registro sin procesar "initiatedBy.app.servicePrincipalId". |
initiatedBy.app.servicePrincipalName | read_only_udm.principal.user.userid | Asignación directa desde el campo de registro sin procesar "initiatedBy.app.servicePrincipalName". |
initiatedBy.user.displayName | read_only_udm.principal.user.user_display_name, read_only_udm.principal.user.email_addresses | Si el valor contiene "@", se analiza como una dirección de correo electrónico y se asigna a "read_only_udm.principal.user.email_addresses". De lo contrario, se asigna a "read_only_udm.principal.user.user_display_name". |
initiatedBy.user.id | read_only_udm.principal.user.product_object_id | Asignación directa desde el campo de registro sin procesar "initiatedBy.user.id". |
initiatedBy.user.ipAddress | read_only_udm.principal.ip, read_only_udm.principal.asset.ip | Asignación directa desde el campo de registro sin procesar "initiatedBy.user.ipAddress". |
initiatedBy.user.userPrincipalName | read_only_udm.principal.user.userid, read_only_udm.principal.user.email_addresses, read_only_udm.principal.administrative_domain, read_only_udm.principal.resource.attribute.labels | Si el valor contiene "@", se analiza como una dirección de correo electrónico y se asigna a "read_only_udm.principal.user.email_addresses". De lo contrario, se asigna a "read_only_udm.principal.user.userid". La parte del dominio de la dirección de correo electrónico se asigna a "read_only_udm.principal.administrative_domain". El valor completo también se asigna a "read_only_udm.principal.resource.attribute.labels" con la clave establecida en "Nombre principal del usuario". |
ipAddress | read_only_udm.principal.ip, read_only_udm.principal.asset.ip | Asignación directa desde el campo de registro sin procesar "ipAddress". |
Nivel | read_only_udm.security_result.severity, read_only_udm.security_result.severity_details | El valor se convierte en una cadena y se asigna a "read_only_udm.security_result.severity_details". El campo "read_only_udm.security_result.severity" está configurado como "INFORMATIONAL". |
location.city | read_only_udm.principal.location.city | Asignación directa del campo de registro sin procesar "location.city". |
location.countryOrRegion | read_only_udm.principal.location.country_or_region | Asignación directa desde el campo de registro sin procesar "location.countryOrRegion". |
location.geoCoordinates.latitude | read_only_udm.principal.location.region_latitude | Asignación directa desde el campo de registro sin procesar "location.geoCoordinates.latitude". |
location.geoCoordinates.longitude | read_only_udm.principal.location.region_longitude | Asignación directa desde el campo de registro sin procesar "location.geoCoordinates.longitude". |
location.state | read_only_udm.principal.location.state | Asignación directa del campo de registro sin procesar "location.state". |
loggedByService | read_only_udm.additional.fields | Asignación directa desde el campo de registro sin procesar "loggedByService". La clave de "read_only_udm.additional.fields" se establece en "loggedByService". |
operationName | read_only_udm.metadata.product_event_type | Asignación directa del campo de registro sin procesar "operationName". |
operationType | read_only_udm.security_result.action_details | Asignación directa desde el campo de registro sin procesar "operationType". |
properties.activityDateTime | read_only_udm.metadata.event_timestamp | Asignación directa desde el campo de registro sin procesar "properties.activityDateTime". |
properties.activityDisplayName | read_only_udm.metadata.product_event_type | Asignación directa desde el campo de registro sin procesar "properties.activityDisplayName". |
properties.appDisplayName | read_only_udm.target.application | Asignación directa del campo de registro sin procesar "properties.appDisplayName". |
properties.category | read_only_udm.security_result.category_details | Asignación directa desde el campo de registro sin procesar "properties.category". |
properties.id | read_only_udm.metadata.product_log_id | Asignación directa desde el campo de registro sin procesar "properties.id". |
properties.initiatedBy.app.appId | read_only_udm.principal.resource.attribute.labels | Asignación directa desde el campo de registro sin procesar "properties.initiatedBy.app.appId". La clave de "read_only_udm.principal.resource.attribute.labels" se establece en "App Id". |
properties.initiatedBy.app.displayName | read_only_udm.principal.application | Asignación directa desde el campo de registro sin procesar "properties.initiatedBy.app.displayName". |
properties.initiatedBy.app.servicePrincipalId | read_only_udm.principal.user.product_object_id | Asignación directa desde el campo de registro sin procesar "properties.initiatedBy.app.servicePrincipalId". |
properties.initiatedBy.app.servicePrincipalName | read_only_udm.principal.user.userid | Asignación directa desde el campo de registro sin procesar "properties.initiatedBy.app.servicePrincipalName". |
properties.initiatedBy.user.displayName | read_only_udm.principal.user.user_display_name, read_only_udm.principal.user.email_addresses | Si el valor contiene "@", se analiza como una dirección de correo electrónico y se asigna a "read_only_udm.principal.user.email_addresses". De lo contrario, se asigna a "read_only_udm.principal.user.user_display_name". |
properties.initiatedBy.user.id | read_only_udm.principal.user.product_object_id | Asignación directa desde el campo de registro sin procesar "properties.initiatedBy.user.id". |
properties.initiatedBy.user.ipAddress | read_only_udm.principal.ip, read_only_udm.principal.asset.ip | Asignación directa desde el campo de registro sin procesar "properties.initiatedBy.user.ipAddress". |
properties.initiatedBy.user.userPrincipalName | read_only_udm.principal.user.userid, read_only_udm.principal.user.email_addresses, read_only_udm.principal.administrative_domain, read_only_udm.principal.resource.attribute.labels | Si el valor contiene "@", se analiza como una dirección de correo electrónico y se asigna a "read_only_udm.principal.user.email_addresses". De lo contrario, se asigna a "read_only_udm.principal.user.userid". La parte del dominio de la dirección de correo electrónico se asigna a "read_only_udm.principal.administrative_domain". El valor completo también se asigna a "read_only_udm.principal.resource.attribute.labels" con la clave establecida en "Nombre principal del usuario". |
properties.loggedByService | read_only_udm.additional.fields | Asignación directa desde el campo de registro sin procesar "properties.loggedByService". La clave de "read_only_udm.additional.fields" se establece en "loggedByService". |
properties.operationType | read_only_udm.security_result.action_details | Asignación directa desde el campo de registro sin procesar "properties.operationType". |
properties.result | read_only_udm.security_result.summary | Asignación directa del campo de registro sin procesar "properties.result". |
properties.resultReason | read_only_udm.security_result.description | Asignación directa del campo de registro sin procesar "properties.resultReason". |
properties.userPrincipalName | read_only_udm.target.user.user_display_name | Asignación directa desde el campo de registro sin procesar "properties.userPrincipalName". |
Resultado | read_only_udm.security_result.summary, read_only_udm.security_result.action | Asignación directa del campo de registro sin procesar "resultado". Si el valor es "success", "read_only_udm.security_result.action" se establece en "ALLOW". Si el valor es "failure", "read_only_udm.security_result.action" se establece en "BLOCK". |
resultDescription | read_only_udm.metadata.description, read_only_udm.security_result.description | Asignación directa del campo de registro sin procesar "resultDescription". |
resultReason | read_only_udm.security_result.description | Asignación directa del campo de registro sin procesar "resultReason". |
resultType | read_only_udm.security_result.rule_id, read_only_udm.security_result.summary, read_only_udm.security_result.action | Asignación directa desde el campo de registro sin procesar "resultType". Si el valor es "0", "read_only_udm.security_result.action" se establece en "ALLOW" y "read_only_udm.security_result.summary" se establece en "Se realizó un acceso exitoso". De lo contrario, "read_only_udm.security_result.action" se establece en "BLOCK", "read_only_udm.security_result.summary" se establece en "Failed login occurred", "read_only_udm.security_result.description" se establece en el valor de "resultDescription" y "read_only_udm.security_result.severity" se establece en "ERROR". |
resourceDisplayName | read_only_udm.target.resource.name | Asignación directa desde el campo de registro sin procesar "resourceDisplayName". |
resourceId | read_only_udm.additional.fields | Asignación directa desde el campo de registro sin procesar "resourceId". La clave de "read_only_udm.additional.fields" se establece en "resourceId". |
riskDetail | read_only_udm.additional.fields | Asignación directa desde el campo de registro sin procesar "riskDetail". La clave de "read_only_udm.additional.fields" se establece en "riskDetail". |
riskEventTypes | read_only_udm.additional.fields | Asignación directa desde el campo de registro sin procesar "riskEventTypes". La clave de "read_only_udm.additional.fields" se establece en "riskEventTypes". |
riskEventTypes_v2 | read_only_udm.additional.fields | Asignación directa desde el campo de registro sin procesar "riskEventTypes_v2". La clave de "read_only_udm.additional.fields" se establece en "riskEventTypes_v2". |
riskLevelAggregated | read_only_udm.additional.fields | Asignación directa desde el campo de registro sin procesar "riskLevelAggregated". La clave de "read_only_udm.additional.fields" se establece en "riskLevelAggregated". |
riskLevelDuringSignIn | read_only_udm.additional.fields, read_only_udm.security_result.priority | Asignación directa desde el campo de registro sin procesar "riskLevelDuringSignIn". La clave de "read_only_udm.additional.fields" se establece en "riskLevelDuringSignIn". Si el valor es "medium", "read_only_udm.security_result.priority" se establece en "MEDIUM_PRIORITY". |
riskState | read_only_udm.additional.fields | Asignación directa desde el campo de registro sin procesar "riskState". La clave de "read_only_udm.additional.fields" se establece en "riskState". |
targetResources.0.displayName | read_only_udm.target.resource.name, read_only_udm.target.user.user_display_name, read_only_udm.target.group.group_display_name | Si el valor de "targetResources.0.type" es "User" o "ServicePrincipal", el valor se asigna a "read_only_udm.target.user.user_display_name". Si el valor de "targetResources.0.type" es "Group", el valor se asigna a "read_only_udm.target.group.group_display_name". De lo contrario, el valor se asigna a "read_only_udm.target.resource.name". |
targetResources.0.groupType | read_only_udm.target.group.attribute.labels | Asignación directa desde el campo de registro sin procesar "targetResources.0.groupType". La clave de "read_only_udm.target.group.attribute.labels" se establece en "groupType". |
targetResources.0.id | read_only_udm.target.resource.product_object_id, read_only_udm.target.user.product_object_id, read_only_udm.target.group.product_object_id | Si el valor de "targetResources.0.type" es "User" o "ServicePrincipal", el valor se asigna a "read_only_udm.target.user.product_object_id". Si el valor de "targetResources.0.type" es "Group", el valor se asigna a "read_only_udm.target.group.product_object_id". De lo contrario, el valor se asigna a "read_only_udm.target.resource.product_object_id". |
targetResources.0.modifiedProperties.displayName | read_only_udm.additional.fields, read_only_udm.target.asset.asset_id, read_only_udm.target.user.title, read_only_udm.target.resource.attribute.roles, read_only_udm.target.user.user_display_name, read_only_udm.target.user.first_name, read_only_udm.target.user.last_name, read_only_udm.target.user.department, read_only_udm.target.user.office_address.name, read_only_udm.target.user.employee_id, read_only_udm.target.user.phone_numbers, read_only_udm.target.user.userid, read_only_udm.target.resource.attribute.labels, read_only_udm.src.resource.attribute.labels | El valor se asigna a "read_only_udm.additional.fields" con la clave establecida en "targetResources.modifiedProperties.displayname {index}". Si el valor es "TargetId.DeviceId", el valor de "targetResources.0.modifiedProperties.newValue" se asigna a "read_only_udm.target.asset.asset_id" con el prefijo "Device ID:". Si el valor es "DisplayName" o "jobTitle", el valor de "targetResources.0.modifiedProperties.newValue" se asigna a "read_only_udm.target.user.title". Si el valor es "WellKnownObjectName", el valor de "targetResources.0.modifiedProperties.newValue" se asigna a "read_only_udm.target.resource.attribute.roles" con la clave establecida en "name". Si el valor es "displayName" y "targetResources.0.displayName" es nulo, el valor de "targetResources.0.modifiedProperties.newValue" se asigna a "read_only_udm.target.user.user_display_name". Si el valor es "givenName", el valor de "targetResources.0.modifiedProperties.newValue" se asigna a "read_only_udm.target.user.first_name". Si el valor es “apellido”, el valor de “targetResources.0.modifiedProperties.newValue” se asigna a “read_only_udm.target.user.last_name”. Si el valor es "department", el valor de "targetResources.0.modifiedProperties.newValue" se asigna a "read_only_udm.target.user.department". Si el valor es "physicalDeliveryOfficeName", el valor de "targetResources.0.modifiedProperties.newValue" se asigna a "read_only_udm.target.user.office_address.name". Si el valor es "employeeId", el valor de "targetResources.0.modifiedProperties.newValue" se asigna a "read_only_udm.target.user.employee_id". Si el valor es "mobile", el valor de "targetResources.0.modifiedProperties.newValue" se asigna a "read_only_udm.target.user.phone_numbers". Si el valor es "MailNickname", el valor de "targetResources.0.modifiedProperties.newValue" se asigna a "read_only_udm.target.user.userid". De lo contrario, el valor de "targetResources.0.modifiedProperties.newValue" se asigna a "read_only_udm.target.resource.attribute.labels" con la clave establecida en el valor de "targetResources.0.modifiedProperties.displayName". El valor de "targetResources.0.modifiedProperties.oldValue" se asigna a "read_only_udm.src.resource.attribute.labels" con la clave establecida en el valor de "targetResources.0.modifiedProperties.displayName". |
targetResources.0.modifiedProperties.newValue | read_only_udm.target.asset.asset_id, read_only_udm.target.user.title, read_only_udm.target.resource.attribute.roles, read_only_udm.target.user.user_display_name, read_only_udm.target.user.first_name, read_only_udm.target.user.last_name, read_only_udm.target.user.department, read_only_udm.target.user.office_address.name, read_only_udm.target.user.employee_id, read_only_udm.target.user.phone_numbers, read_only_udm.target.user.userid, read_only_udm.target.resource.attribute.labels, read_only_udm.additional.fields | Si el valor de "targetResources.0.modifiedProperties.displayName" es "TargetId.DeviceId", el valor se asigna a "read_only_udm.target.asset.asset_id" con el prefijo "Device ID:". Si el valor de "targetResources.0.modifiedProperties.displayName" es "DisplayName" o "jobTitle", el valor se asigna a "read_only_udm.target.user.title". Si el valor de "targetResources.0.modifiedProperties.displayName" es "WellKnownObjectName", el valor se asigna a "read_only_udm.target.resource.attribute.roles" con la clave establecida en "name". Si el valor de "targetResources.0.modifiedProperties.displayName" es "displayName" y "targetResources.0.displayName" es nulo, el valor se asigna a "read_only_udm.target.user.user_display_name". Si el valor de "targetResources.0.modifiedProperties.displayName" es "givenName", el valor se asigna a "read_only_udm.target.user.first_name". Si el valor de "targetResources.0.modifiedProperties.displayName" es "apellido", el valor se asigna a "read_only_udm.target.user.last_name". Si el valor de "targetResources.0.modifiedProperties.displayName" es "department", el valor se asigna a "read_only_udm.target.user.department". Si el valor de "targetResources.0.modifiedProperties.displayName" es "physicalDeliveryOfficeName", el valor se asigna a "read_only_udm.target.user.office_address.name". Si el valor de "targetResources.0.modifiedProperties.displayName" es "employeeId", el valor se asigna a "read_only_udm.target.user.employee_id". Si el valor de "targetResources.0.modifiedProperties.displayName" es "mobile", el valor se asigna a "read_only_udm.target.user.phone_numbers". Si el valor de "targetResources.0.modifiedProperties.displayName" es "MailNickname", el valor se asigna a "read_only_udm.target.user.userid". De lo contrario, el valor se asigna a "read_only_udm.target.resource.attribute.labels" con la clave establecida en el valor de "targetResources.0.modifiedProperties.displayName". El valor también se asigna a "read_only_udm.additional.fields" con la clave establecida en "targetResources.modifiedProperties.newValue {index}". |
targetResources.0.modifiedProperties.oldValue | read_only_udm.src.resource.attribute.labels, read_only_udm.additional.fields | El valor se asigna a "read_only_udm.src.resource.attribute.labels" con la clave establecida en el valor de "targetResources.0.modifiedProperties.displayName". El valor también se asigna a "read_only_udm.additional.fields" con la clave establecida en "targetResources.modifiedProperties.oldValue {index}". |
targetResources.0.type | read_only_udm.target.resource.resource_subtype, read_only_udm.target.resource.resource_type, read_only_udm.target.user.userid, read_only_udm.target.user.product_object_id, read_only_udm.target.user.user_display_name, read_only_udm.target.group.product_object_id, read_only_udm.target.group.group_display_name | Asignación directa desde el campo de registro sin procesar "targetResources.0.type". Si el valor es "ServicePrincipal", "read_only_udm.target.resource.resource_type" se establece en "SERVICE_ACCOUNT". Si el valor es "Device", "read_only_udm.target.resource.resource_type" se establece en "DEVICE". De lo contrario, "read_only_udm.target.resource.resource_type" se establece en "UNSPECIFIED". Si el valor es "User" o "ServicePrincipal", el valor de "targetResources.0.userPrincipalName" se asigna a "read_only_udm.target.user.userid", el valor de "targetResources.0.id" se asigna a "read_only_udm.target.user.product_object_id" y el valor de "targetResources.0.displayName" se asigna a "read_only_udm.target.user.user_display_name". Si el valor es "Grupo", el valor de "targetResources.0.id" se asigna a "read_only_udm.target.group.product_object_id" y el valor de "targetResources.0.displayName" se asigna a "read_only_udm.target.group.group_display_name". |
targetResources.0.userPrincipalName | read_only_udm.target.user.userid, read_only_udm.target.user.email_addresses | Si el valor contiene "@", se analiza como una dirección de correo electrónico y se asigna a "read_only_udm.target.user.email_addresses". De lo contrario, se asigna a "read_only_udm.target.user.userid". |
targetResources.displayName | read_only_udm.about.resource.name, read_only_udm.about.user.userid, read_only_udm.about.user.user_display_name, read_only_udm.about.group.group_display_name, read_only_udm.about.group.attribute.labels | Si el valor de "targetResources.type" es "User" o "ServicePrincipal", el valor se asigna a "read_only_udm.about.user.user_display_name" y "read_only_udm.about.user.userid". Si el valor de "targetResources.type" es "Group", el valor se asigna a "read_only_udm.about.group.group_display_name". El valor de "targetResources.groupType" se asigna a "read_only_udm.about.group.attribute.labels" con la clave establecida en "groupType". De lo contrario, el valor se asigna a "read_only_udm.about.resource.name". |
targetResources.groupType | read_only_udm.about.group.attribute.labels, read_only_udm.target.user.group_identifiers | Asignación directa desde el campo de registro sin procesar "targetResources.groupType". La clave para "read_only_udm.about.group.attribute.labels" se establece en "groupType". |
targetResources.id | read_only_udm.about.resource.product_object_id, read_only_udm.about.user.product_object_id, read_only_udm.about.group.product_object_id | Si el valor de "targetResources.type" es "User" o "ServicePrincipal", el valor se asigna a "read_only_udm.about.user.product_object_id". Si el valor de "targetResources.type" es "Group", el valor se asigna a "read_only_udm.about.group.product_object_id". De lo contrario, el valor se asigna a "read_only_udm.about.resource.product_object_id". |
targetResources.modifiedProperties.displayName | read_only_udm.additional.fields | El valor se asigna a "read_only_udm.additional.fields" con la clave establecida en "targetResources.modifiedProperties.displayname {index}". |
targetResources.modifiedProperties.newValue | read_only_udm.additional.fields | El valor se asigna a "read_only_udm.additional.fields" con la clave establecida en "targetResources.modifiedProperties.newValue {index}". |
targetResources.modifiedProperties.oldValue | read_only_udm.additional.fields | El valor se asigna a "read_only_udm.additional.fields" con la clave establecida en "targetResources.modifiedProperties.oldValue {index}". |
targetResources.type | read_only_udm.about.resource.resource_subtype, read_only_udm.about.resource.resource_type, read_only_udm.about.user.userid, read_only_udm.about.user.product_object_id, read_only_udm.about.user.user_display_name, read_only_udm.about.group.product_object_id, read_only_udm.about.group.group_display_name | Asignación directa desde el campo de registro sin procesar "targetResources.type". Si el valor es "ServicePrincipal", "read_only_udm.about.resource.resource_type" se establece en "SERVICE_ACCOUNT". Si el valor es "Device", "read_only_udm.about.resource.resource_type" se establece en "DEVICE". De lo contrario, "read_only_udm.about.resource.resource_type" se establece como "UNSPECIFIED". Si el valor es "User" o "ServicePrincipal", el valor de "targetResources.userPrincipalName" se asigna a "read_only_udm.about.user.userid", el valor de "targetResources.id" se asigna a "read_only_udm.about.user.product_object_id" y el valor de "targetResources.displayName" se asigna a "read_only_udm.about.user.user_display_name". Si el valor es "Grupo", el valor de "targetResources.id" se asigna a "read_only_udm.about.group.product_object_id" y el valor de "targetResources.displayName" se asigna a "read_only_udm.about.group.group_display_name". |
targetResources.userPrincipalName | read_only_udm.about.user.userid, read_only_udm.about.user.email_addresses | Si el valor contiene "@", se analiza como una dirección de correo electrónico y se asigna a "read_only_udm.about.user.email_addresses". De lo contrario, se asigna a "read_only_udm.about.user.userid". |
tenantId | read_only_udm.additional.fields | Asignación directa desde el campo de registro sin procesar "tenantId". La clave de "read_only_udm.additional.fields" se establece en "tenantId". |
hora | read_only_udm.metadata.event_timestamp | Asignación directa del campo de registro sin procesar "time". |
userid | read_only_udm.target.user.product_object_id | Asignación directa desde el campo de registro sin procesar "userId". El valor se establece en función de los valores de otros campos, incluidos "activityDisplayName", "principal_userid_present", "target_userid_present", "principal_ip_present", "loggedByService" y "category". La lógica para establecer el valor es compleja y depende de la combinación específica de valores en estos campos. El valor se establece en "SSO" si el valor de "operationName" es "Sign-in activity". El valor se establece en "Microsoft". El valor se establece en "Auditoría de directorio de Azure AD". El valor se establece en "AZURE_AD_AUDIT". |
Cambios
2024-07-30
- Cuando "principal.user.userid" o "target.user.userid" están presentes, solo se asigna "metadata.event_type" a "USER_CHANGE_PERMISSIONS".
2024-06-26
- Se asignó el delta entre "targetResources.modifiedProperties.newValue" y "targetResources.modifiedProperties.oldValue" a "additional.fields".
2024-06-10
- Cuando "initiatedBy.user.ipAddress" tenga una IP, establece "principal_ip_present" en "true".
- Se agregó una condición para establecer "metadata.event_type" en "USER_DELETION" solo cuando "principal_ip_present" sea "true".
2024-06-03
- Se agregó un bloque JSON para analizar registros sin analizar.
- Se agregó una verificación condicional para "event_type" "USER_DELETION".
2024-05-20
Corrección de errores:
- Se modificó la asignación de "targetResource".
- Se asignó la primera iteración de "targetResource" a "target" y la siguiente iteración de "targetResource" a "about".
- Se cambió el nombre de clave del campo "loggedByService" a "loggedByService" de "log_Service".
- Se cambió la asignación de "resourceId" de "target.resource.id" a "additional_fields".
- Cuando "targetResources.type" = "Application", "Policy", "Role", "Directory", "RoleAssignment", "Request", "Provider", "Other", se asignó "targetResources.displayName" a "noun.resource.name", "targetResources.id" a "noun.resource.product_object_id", "noun.resource.resource_type" = "UNSPECIFIED" y "targetResource.type" a "noun.resource.resource_subtype".
- Cuando "targetResources.type" = "User", se asignan "targetResources.displayName" a "noun.resource.name", "targetResources.id" a "noun.resource.product_object_id", "noun.resource.resource_type" = "UNSPECIFIED", "targetResource.type" a "noun.resource.resource_subtype", "targetResources.displayName" a "noun.user.user_display_name", "targetResources.id" a "noun.user.product_object_id" y "targetResources.userPrincipalName" a "noun.user.userid".
- Cuando "targetResources.type" = "ServicePrincipal", se asignó "targetResources.displayName" a "noun.resource.name", "targetResources.id" a "noun.resource.product_object_id", "noun.resource.resource_type" = "SERVICE_ACCOUNT", "targetResource.type" a "noun.resource.resource_subtype", "targetResources.displayName" a "noun.user.user_display_name", "targetResources.id" a "noun.user.product_object_id" y "targetResources.userPrincipalName" a "noun.user.userid".
- Cuando "targetResources.type" = "Group", se asignó "targetResources.displayName" a "noun.resource.name", "targetResources.id" a "noun.resource.product_object_id", "noun.resource.resource_type" = "UNSPECIFIED", "targetResource.type" a "noun.resource.resource_subtype", "targetResources.displayName" a "noun.group.group_display_name", "targetResources.id" a "noun.group.product_object_id" y "groupType" a "noun.group.attribute.labels".
2024-05-17
- Se asignó "initiatedBy.user.id" a "principal.user.product_object_id".
- Se asignó "initiatedBy.user.userPrincipalName" a "principal.user.userid".
2024-03-18
- Se muestran los campos "targetResources.modifiedProperties.displayname", "targetResources.modifiedProperties.newValue" y "targetResources.modifiedProperties.oldValue", incluso cuando el valor es nulo.
- Se asignó "callerIpAddress" a "principal.ip".
2024-03-12
Corrección de errores:
- Asignaciones sincronizadas de las asignaciones de registro de formato de sobre de Azure Monitor a los registros de formato de la API de Microsoft Graph
- Se asignó "target.resource.resource_type" según "targetResources.type".
- Se asignó "targetResources.type" a "target.resource.type".
2024-03-04
- Se asignó "user_principal_name" de "initiatedBy.user.userPrincipalName" a "principal.resource.attribute.labels".
- Se asignó “domain” de “initiatedBy.user.userPrincipalName” a “principal.administrative_domain”.
- Se asignaron "loggedByService" y "properties.loggedByService" a "additional.fields".
- Se cambió la asignación de "initiatedBy.user.id" de "principal.user.product_object_id" a "principal.user.userid".
- Se asignó "tgt_user_principal_name" de "target.userPrincipalName" a "target.resource.attribute.labels".
- Se asignó "domain" de "target.userPrincipalName" a "target.administrative_domain".
- Se asignó "category" a "additional.fields".
- Cuando "additionalDetails[n].key" es "AppId", se asigna "additionalDetails[n].value" a "target.process.pid".
- Cuando "additionalDetails[n].key" es "User-Agent", se asigna "additionalDetails[n].value" a "network.http.user_agent" y "network.http.parsed_user_agent".
- Se asignó "metadata.event_type" según "loggedByService", "category" y "activityDisplayName".
- Se asignaron "targetResources.modifiedProperties.displayname", "targetResources.modifiedProperties.newValue" y "targetResources.modifiedProperties.oldValue" a "additional.fields".
2024-02-21
- Se agregó una verificación condicional si "principal.user.userid" está presente antes de establecer "metadata.event_type" en "USER_CREATION".
- Se cambió la asignación de "initiatedBy.user.id" de "principal.user.userid" a "principal.user.product_object_id".
- Se cambió la asignación de "initiatedBy.app.servicePrincipalId" de "principal.user.userid" a "principal.user.product_object_id".
- Se cambió la asignación de "initiatedBy.app.servicePrincipalName" de "principal.user.user_display_name" a "principal.user.userid".
- Se cambió la asignación de "properties.initiatedBy.user.id" de "principal.user.userid" a "principal.user.product_object_id".
- Se cambió la asignación de "properties.initiatedBy.app.servicePrincipalId" de "principal.user.userid" a "principal.user.product_object_id".
- Se cambió la asignación de "properties.initiatedBy.app.servicePrincipalName" de "principal.user.user_display_name" a "principal.user.userid".
- Si el valor de "targetResourceType" es similar a "User" o "ServicePrincipal", se cambió la asignación de "target.id" de "target.user.userid" a "target.user.product_object_id".
- Si el valor de "targetResourceType" es similar a "User" o "ServicePrincipal", se asignó "target.userPrincipalName" a "target.user.userid".
- Si el valor de "targetResourceType" es similar a "User" o "ServicePrincipal", se asignó "target.displayName" a "target.user.user_display_name".
2024-02-12
- Se agregó una verificación condicional para "modifiedProperty.displayName", "modifiedProperty.newValue" y "modifiedProperty.oldValue".
- Cuando "targetResource.id" sea "User" o "ServicePrincipal", se asignará a "target.user.userid".
2024-01-08
Corrección de errores:
- Se agregó un patrón Grok para validar los valores de correo electrónico antes de asignarlos a "principal.user.email_addresses" y "target.user.email_addresses".
2023-12-19
- Se asignaron "targetResource.modifiedProperties.newValue", "targetResource.modifiedProperties.oldValue" y "targetResource.modifiedProperties.displayName" a "additional.fields".
2023-11-23
- Se asignaron los campos "targetResources.0.modifiedProperties.newValue/oldValue" a "event.idm.read_only_udm.additional.fields".
- Se agregó la verificación del formato de ip_address a "initiatedBy.user.ipAddress" antes de la asignación a udm.
2023-10-16
- Se modificaron las siguientes asignaciones:
- Se cambió "metadata.event_type" de "USER_UNCATEGORIZED" a "USER_RESOURCE_ACCESS" cuando "target.type is not 'user'".
- Se cambió la asignación de "target.id" de "principal.user.userid" a "principal.user.group_or_identifiers", donde "target.type" no es "user".
- Se asignó el campo que se asignó a "target.resource.id" a "target.resource.product_object_id" también porque "target.resource.id" dejó de estar disponible.
2023-08-03
- Se modificaron las siguientes asignaciones:
- Se cambió "metadata.event_type" de "USER_UNCATEGORIZED" a "USER_CREATION", donde "activityDisplayName" es "Add user".
- Se cambió la asignación de "activityDisplayName" de "metadata.description" a "metadata.product_event_type".
- Se asignó el "metadata.event_type" apropiado en el que "activityDisplayName" es "Add member to group", "Add owner to group".
- Todos los campos de "targetResources" deben ser parte de los campos target.user. de la UDM.
- 'target.user.userid' asignado al "id" correcto en "targetResource"
- Para "activityDisplayName" como "Add member to role outside of PIM (permanent)" en "activityDisplayName" asignado a "target.user.xxx" cuando el tipo de recurso es "User".
- Para "activityDisplayName" como "Add Member to Role", se asignó "Role.WellKnownObjectName" a "target.resource.attribute.roles.name".
2023-07-24
- Se asignó "targetresources.modifiedproperties.newvalue" a "target.user.title" cuando el valor de "targetresources.modifiedproperties.displayname" contiene "role.displayname".
2023-05-25
- Se corrigió el error: Se cambió la asignación de "target.resource.attribute.labels.value" a "target.user.userid" cuando "targetResources.modifiedProperties.displayName" es igual a "mailNickname".
2023-05-05
- Se modificaron las siguientes asignaciones:
- Se cambió la asignación de "target.resource.attribute.labels.value" a "target.user.product_object_id" cuando "targetResources.modifiedProperties.displayName" es igual a "objectId".
- Se cambió la asignación de "target.resource.attribute.labels.value" a "target.user.user_display_name" cuando "targetResources.modifiedProperties.displayName" es igual a "displayName".
- Se cambió la asignación de "target.resource.attribute.labels.value" a "target.user.first_name" cuando "targetResources.modifiedProperties.displayName" es igual a "givenName".
- Se cambió la asignación de "target.resource.attribute.labels.value" a "target.user.title" cuando "targetResources.modifiedProperties.displayName" es igual a "jobTitle".
- Se cambió la asignación de "target.resource.attribute.labels.value" a "target.user.email_addresses" cuando "targetResources.modifiedProperties.displayName" es igual a "mail".
- Se cambió la asignación de "target.resource.attribute.labels.value" a "target.user.last_name" cuando "targetResources.modifiedProperties.displayName" es igual a "surname".
- Se cambió la asignación de "target.resource.attribute.labels.value" a "target.user.department" cuando "targetResources.modifiedProperties.displayName" es igual a "department".
- Se cambió la asignación de "target.resource.attribute.labels.value" a "target.user.office_address.name" cuando "targetResources.modifiedProperties.displayName" es igual a "physicalDeliveryOfficeName".
- Se cambió la asignación de "target.resource.attribute.labels.value" a "target.user.employee_id" cuando "targetResources.modifiedProperties.displayName" es igual a "employeeId".
- Se cambió la asignación de "target.resource.attribute.labels.value" a "target.user.phone_numbers" cuando "targetResources.modifiedProperties.displayName" es igual a "mobile".
2023-04-18
- "initiatedBy.user.userPrincipalName" asignado a "principal.user.user_display_name", "principal.user.userid" o "principal.user.email_addresses".
- "targetResources.type" se asignó a "target.resource.attribute.labels".
2023-04-12
Mejora:
- Se asignó "initiatedBy.user.userPrincipalName" a "principal.user.email_addresses" y "event_type" a "USER_UNCATEGORIZED".
- cuando "initiatedBy.user.userPrincipalName" no es nulo.
- Si "targetResources.modifiedProperties.displayName" es "userPrincipalName", se asignó a "principal.user.email_addresses".
- Se asignó "event_type" a "USER_UNCATEGORIZED" cuando "activityDisplayName" está en ["Issue an id_token to the application", "Set Company Information"].
2023-02-20
Bug-Fix:
- Se asignaron varias direcciones IP que se encuentran en la clave "additionalDetails.ClientIpAddress" a "principal.ip".
- Se asignó metadata.event_type como "USER_UNCATEGORIZED" cuando "activityDisplayName" es igual a "Delete user" y no está presente el campo "initiatedBy.user.userPrincipalName".
2023-02-02
- Mejora: Se asignó lo siguiente cuando "activityDisplayName" es igual a "Delete user":
- Se asignó "event_type" a "USER_DELETION".
- Se asignó "initiatedBy.user.userPrincipalName" a "principal.user.userid".
2022-11-24
Mejora:
- Se asignó "modifiedProperties.newValue" a "target.resource.attribute.labels".
- Se asignó "modifiedProperties.oldValue" a "src.resource.attribute.labels".
2022-11-07
Mejora:
- Se asignó "target.modifiedProperties.TargetId.DeviceId" a "event.idm.read_only_udm.target.asset.asset_id".
2022-09-16
Mejora:
- Se asignó "properties.initiatedBy.user.ipAddress" a "principal.ip".
- Se asignó "properties.initiatedBy.user.userPrincipalName" a "principal.user.userid".
- Se asignó "properties.resultReason" a "security_result.description".
- Se asignó "identity" a "target.user.userid".
- Se asignó "operationName" a "metadata.product_event_type".
- Se asignó "metadata.event_type" a "USER_UNCATEGORIZED", donde "properties.activityDisplayName" es "Get resource properties of a tenant".
- Se asignaron "category" y "properties.category" a "security_result.category_details".
- Se asignó "resultDescription" a "metadata.description".
- Se asignó "resultType" a "security_result.rule_id".
2022-06-20
- Mejora: Se mejoró el analizador para analizar los registros con la categoría "AuditLogs" y "SignInLogs" agregando las siguientes asignaciones :
- Se asignó el campo "properties.id" a "metadata.product_log_id".
- Se asignó el campo "properties.loggedByService" a "target.application".
- Se asignó el campo "Nivel" a "security_result.severity" y "security_result.severity_details".
- Se asignó el campo "properties.result" a "security_result.summary" y "security_result.action".
- Se asignó el campo "properties.operationType" a "security_result.action_details".
- Se asignó el campo "properties.activityDisplayName" a "metadata.description".
- Se asignó el campo "properties.category" a "metadata.product_event_type".
- Se asignó el campo "properties.resultReason" a "security_result.description".
- Se asignó el campo "properties.initiatedBy.app.displayName" a "principal.application".
- Se asignó el campo "properties.ipAddress" a "principal.ip".
- Se asignó el campo "properties.initiatedBy.app.servicePrincipalId" a "principal.user.userid".
- Se asignó el campo "properties.initiatedBy.app.servicePrincipalName" a "principal.user.user_display_name".
- Se asignaron los campos "properties.appId" y "properties.initiatedBy.app.appId" a "principal.resource.attribute.labels".
- Se asignó el campo "properties.location.city" a "principal.location.city".
- Se asignó el campo "properties.location.state" a "principal.location.state".
- Se asignó el campo "properties.location.countryOrRegion" a "principal.location.country_or_region".
- Se asignó el campo "properties.location.geoCoordinates.latitude" a "principal.location.region_latitude".
- Se asignó el campo "properties.location.geoCoordinates.longitude" a "principal.location.region_longitude".
- Se asignaron los campos "properties.targetResources.modifiedProperties" a "target.user.attribute.labels".
- Se asignó el campo "targetResources.displayName" a "target.user.user_display_name".
- Se asignó el campo "targetResources.id" a "target.user.userid".
- Se asignaron los campos "properties.additionalDetails", "properties.riskDetail", "properties.riskEventTypes", "properties.riskEventTypes_v2", "properties.riskLevelAggregated", "properties.riskLevelDuringSignIn", "properties.riskState", "properties.conditionalAccessStatus" y "tenantId" a "additional.fields".
- Se asignó el campo "operationVersion" a "metadata.product_version".
- Se asignó el campo "properties.appliedConditionalAccessPolicies.displayName" a "about.user.user_display_name".
- Se asignó el campo "properties.appliedConditionalAccessPolicies..id" a "about.user.userid".
- Se asignó el campo "properties.appliedConditionalAccessPolicies.result" a "about.labels".