Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
Los registros de actividad de Microsoft Graph proporcionan una pista de auditoría de todas las solicitudes HTTP que el servicio de Microsoft Graph recibe y procesa para un espacio empresarial. Los administradores de inquilinos pueden activar la recopilación de registros y configurar destinos de bajada mediante la configuración de diagnóstico en Azure Monitor. Los registros se envían a Log Analytics para su análisis. Puede exportarlos a Azure Storage para el almacenamiento a largo plazo o transmitirlos con Azure Event Hubs a herramientas SIEM externas para alertas, análisis o archivado.
Obtiene registros de solicitudes de API de aplicaciones de línea de negocio, clientes de API, SDK, clientes de IA que consultan el servidor Microsoft MCP para empresas y aplicaciones de Microsoft como Outlook, Microsoft Teams o los portales de administración de Microsoft.
Este servicio está disponible en estas implementaciones en la nube nacional.
| Servicio global | Administración pública de EE. UU. | Gobierno de EE. UU. L5 (DOD) | China operado por 21Vianet |
|---|---|---|---|
| ✅ | ✅ | ✅ | ✅ |
Requisitos previos
Para usar los registros de actividad de Microsoft Graph, necesita los siguientes privilegios.
- Una licencia de inquilino de Microsoft Entra ID P1 o P2.
- Un administrador con un rol de administrador de Microsoft Entra compatible. El administrador de seguridad es el único rol de administrador con privilegios mínimos admitido para configurar la configuración de diagnóstico.
- Una suscripción a Azure con uno de los siguientes destinos de registro configurados y permisos para usar los datos en los destinos de registro correspondientes.
- un área de trabajo de Azure Log Analytics para enviar los registros a Azure Monitor
- Una cuenta de almacenamiento de Azure en la que tenga permisos de claves de lista
- Un espacio de nombres de Azure Event Hubs para conectarse con soluciones de terceros
Qué datos están disponibles en los registros de actividad de Microsoft Graph
En este artículo se muestran los datos sobre las solicitudes de API que están disponibles para los registros de actividad de Microsoft Graph en la interfaz de análisis de registros.
Sugerencia
Las solicitudes al servidor MCP de Microsoft para empresas tienen un RequestUri que incluye /enterprise.
Advertencia
No almacene secretos ni otra información confidencial (como contraseñas, credenciales, tokens de acceso o actualización, o cadenas de conexión) en atributos de objetos de directorio o en cualquier otro recurso auditable expuesto por Microsoft Graph. Los registros de actividad de Microsoft Graph, junto con otros registros de auditoría e inicio de sesión, capturan detalles sobre las solicitudes de API, incluidos los URI de solicitud. Cualquier valor confidencial que se pase en una solicitud o se almacene en dicho recurso se puede registrar en estos registros, donde es legible por los administradores de inquilinos y por cualquier área de trabajo de Log Analytics descendente, cuenta de almacenamiento de Azure o sistema SIEM al que se exportan los registros. Los atributos de los objetos de directorio no son un almacén seguro de secretos; En su lugar, use un almacén de secretos dedicado, como Azure Key Vault.
| Column | Tipo | Description |
|---|---|---|
| AadTenantId | string | El identificador de inquilino de Azure AD. |
| ApiVersion | string | La versión de API del evento. |
| AppId | string | El identificador de la aplicación. |
| ATContent | string | Reservado para uso futuro. |
| ATContentH | string | Reservado para uso futuro. |
| ATContentP | string | Reservado para uso futuro. |
| _BilledSize | real | El tamaño del registro en bytes |
| ClientAuthMethod | Entero | Indica cómo se autenticó el cliente. Para un cliente público, el valor es 0. Si se usan el identificador de cliente y el secreto de cliente, el valor es 1. Si se usó un certificado de cliente para la autenticación, el valor es 2. |
| ClientRequestId | string | Opcional. El identificador de solicitud del cliente cuando se envió. Si no se envía ningún identificador de solicitud de cliente, el valor será igual al identificador de operación. |
| ConditionalAccessStatus | string | El estado de acceso condicional registrado por Microsoft Graph para la solicitud. Vacío cuando no se ha registrado ningún estado. |
| DeviceId | string | El identificador del dispositivo desde el que se originó la solicitud de autenticación. |
| DurationMs | Entero | La duración de la solicitud en milisegundos. |
| IdentityProvider | string | El proveedor de identidad que autenticó al sujeto del token. |
| IPAddress | string | La dirección IP del cliente desde donde se produjo la solicitud. |
| _IsBillable | string | Especifica si la ingesta de los datos es facturable. Cuando _IsBillable false es la ingesta no se factura a su cuenta de Azure |
| Ubicación | cadena | El nombre de la región que atendió la solicitud. |
| Identificador de operación | string | El identificador del lote. En el caso de las solicitudes no por lotes, este valor será único por solicitud. En el caso de las solicitudes por lotes, será el mismo para todas las solicitudes del lote. |
| Id. de solicitud | string | Identificador que representa la solicitud. |
| RequestMethod | string | El método HTTP del evento. |
| RequestUri | string | El URI de la solicitud. |
| ResponseSizeBytes | Entero | Tamaño de la respuesta en bytes. |
| Código de estado de respuesta | Entero | El código de estado de respuesta HTTP para el evento. |
| Funciones | string | Los roles en las notificaciones de token. |
| Scopes | string | Los ámbitos de las notificaciones de token. |
| ServicePrincipalId | string | Identificador del servicePrincipal que realiza la solicitud. |
| SessionId | string | El identificador único de la sesión de autenticación. |
| SignInActivityId | string | El identificador que representa las actividades de inicio de sesión. |
| Sistema de origen | string | El tipo de agente que recopiló el evento. Por ejemplo, para el agente de Windows, OpsManager Direct Connect o Operations Manager, Linux para todos los agentes de Linux o Azure para Azure Diagnostics |
| TenantId | string | El identificador del área de trabajo de Log Analytics |
| Hora de creación | datetime | La fecha y hora en que se recibió la solicitud. |
| TokenIssuedAt | datetime | La marca de tiempo en la que se emitió el token. |
| Tipo | string | El nombre de la tabla |
| UniqueTokenId | string | El identificador de token único de la llamada a la API usada para realizar el cambio auditado. |
| UserAgent | string | La información del agente de usuario relacionada con la solicitud. |
| UserId | string | El identificador del usuario que realiza la solicitud. |
| Wids | string | Indica los roles de todo el espacio empresarial asignados a este usuario. |
Casos de uso comunes de los registros de actividad de Microsoft Graph
- Vea todas las transacciones realizadas por las aplicaciones y otros clientes de API a los que ha dado su consentimiento en el inquilino.
- Buscar actividades que una cuenta de usuario en peligro realiza en el espacio empresarial.
- Cree detecciones y análisis de comportamiento para detectar el uso sospechoso o inusual de las API de Microsoft Graph.
- Investigue la asignación de privilegios inesperada o sospechosa de permisos de aplicación.
- Detecte comportamientos problemáticos o inesperados para las aplicaciones cliente, como volúmenes extremos de llamadas.
- Supervise las interacciones del cliente de IA con las API de Microsoft Graph, incluidas las solicitudes de las aplicaciones de IA y el servidor Microsoft MCP para empresas.
- Correlacionar las solicitudes de Microsoft Graph realizadas por un usuario o una aplicación con la información de inicio de sesión.
Configurar registros de actividad de Microsoft Graph
Stream los registros a través de la configuración de diagnóstico en el Azure Portal o mediante Azure Resource Manager API. Para más información, consulte los siguientes artículos:
- Integración de registros de actividad con registros de Azure Monitor
- Configure diagnosticSettings a través de la API de Azure Resource Manager
Utilice los siguientes artículos para configurar destinos de almacenamiento:
Estimaciones de la planificación de costos
Si ya tiene una licencia de Microsoft Entra ID P1, necesita una suscripción de Azure para configurar el área de trabajo de Log Analytics, la cuenta de almacenamiento o Event Hubs. Obtiene la suscripción de Azure sin coste alguno, pero paga por usar los recursos de Azure.
La cantidad de datos registrados y el costo incurrido pueden variar significativamente en función del tamaño del inquilino y de las aplicaciones del inquilino que interactúan con las API de Microsoft Graph. En la tabla siguiente se proporcionan estimaciones del tamaño de los datos de registro para ayudarle a calcular los precios. Utilice estas estimaciones solo para consideración general.
| Usuarios del inquilino | Almacenamiento (GiB al mes) | Mensajes de Event Hubs (por mes) | Registros de monitor de Azure (GiB al mes) |
|---|---|---|---|
| 1,000 | 14 | 62,000 | 15 |
| 100 000 | 1,000 | 4 800 000 | 1 200 |
Consulte los siguientes detalles de precios para cada servicio:
Reducción de costos para Log Analytics
Si ingiere los registros en un área de trabajo de Log Analytics pero solo está interesado en registros filtrados por un criterio, como omitir determinadas columnas o filas, puede reducir parcialmente los costos aplicando una transformación de área de trabajo en la tabla Registros de actividad de Microsoft Graph. Para obtener más información sobre las transformaciones del área de trabajo, cómo afecta a los costos de ingesta y cómo aplicar una transformación a los registros de actividad de Microsoft Graph, consulte Transformaciones de recopilación de datos en Azure Monitor.
Un enfoque alternativo para reducir el costo de Log Analytics es cambiar al plan de datos de registro básico, que reduce las facturas al proporcionar capacidades reducidas. Para obtener más información, consulte Establecer el plan de datos de registro de una tabla en Básico o Analítico.
Ejemplos de consulta de registros de monitor de Azure
Si envía registros de actividad de Microsoft Graph a un área de trabajo de Log Analytics, puede consultar los registros mediante el Lenguaje de consulta Kusto (KQL). Para obtener más información acerca de las consultas en el área de trabajo de Log Analytics, consulte Análisis de los registros de actividad de Microsoft Entra con Log Analytics. Puede usar estas consultas para la exploración de datos, para crear reglas de alerta, crear paneles de Azure o integrarse en sus aplicaciones personalizadas mediante la API de registros de Azure Monitor o el SDK de Query.
La siguiente consulta de Kusto identifica las 20 entidades principales que realizan solicitudes a los recursos de grupos que producen errores debido a la autorización:
MicrosoftGraphActivityLogs
| where TimeGenerated >= ago(3d)
| where ResponseStatusCode == 401 or ResponseStatusCode == 403
| where RequestUri contains "/groups"
| summarize UniqueRequests=count_distinct(RequestId) by AppId, ServicePrincipalId, UserId
| sort by UniqueRequests desc
| limit 20
La siguiente consulta de Kusto identifica recursos consultados o modificados por usuarios potencialmente arriesgados:
MicrosoftGraphActivityLogs
| where TimeGenerated > ago(30d)
| join AADRiskyUsers on $left.UserId == $right.Id
| extend resourcePath = replace_string(replace_string(replace_regex(tostring(parse_url(RequestUri).Path), @'(\/)+','/'),'v1.0/',''),'beta/','')
| summarize RequestCount=dcount(RequestId) by UserId, RiskState, resourcePath, RequestMethod, ResponseStatusCode
La siguiente consulta de Kusto permite correlacionar los registros de actividad de Microsoft Graph y los registros de inicio de sesión. Es posible que no todos los registros de actividad de las aplicaciones de Microsoft tengan entradas de registro de inicio de sesión coincidentes. Para obtener más información, consulte Limitaciones conocidas de los registros de inicio de sesión.
MicrosoftGraphActivityLogs
| where TimeGenerated > ago(7d)
| join kind=leftouter (union SigninLogs, AADNonInteractiveUserSignInLogs, AADServicePrincipalSignInLogs, AADManagedIdentitySignInLogs, ADFSSignInLogs
| where TimeGenerated > ago(7d))
on $left.SignInActivityId == $right.UniqueTokenIdentifier
La siguiente consulta de Kusto identifica las aplicaciones que se están limitando:
MicrosoftGraphActivityLogs
| where TimeGenerated > ago(3d)
| where ResponseStatusCode == 429
| extend path = replace_string(replace_string(replace_regex(tostring(parse_url(RequestUri).Path), @'(\/)+','//'),'v1.0/',''),'beta/','')
| extend UriSegments = extract_all(@'\/([A-z2]+|\$batch)($|\/|\(|\$)',dynamic([1]),tolower(path))
| extend OperationResource = strcat_array(UriSegments,'/')| summarize RateLimitedCount=count() by AppId, OperationResource, RequestMethod
| sort by RateLimitedCount desc
| limit 100
La consulta siguiente permite representar un gráfico de serie temporal:
MicrosoftGraphActivityLogs
| where TimeGenerated between (ago(3d) .. ago(1h))
| summarize EventCount = count() by bin(TimeGenerated, 10m)
| render timechart
with (
title="Recent traffic patterns",
xtitle="Time",
ytitle="Requests",
legend=hidden
)
Limitaciones
- La característica de registros de actividad de Microsoft Graph permite a los administradores de inquilinos recopilar registros para el inquilino de recursos. Esta característica no le permite ver las actividades de una aplicación multiinquilino en otro espacio empresarial.
- No se pueden filtrar los registros de actividad de Microsoft Graph a través de la configuración de diagnóstico en Azure Monitor. Sin embargo, hay opciones disponibles para reducir los costos en el área de trabajo de Azure Log Analytics. Para obtener más información, consulte Transformación del espacio de trabajo.
- En la mayoría de las regiones, los eventos están disponibles y se entregan en el destino de la configuración en menos de 30 minutos. En casos menos comunes, algunos eventos pueden tardar hasta 2 horas en entregarse en el destino.