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 un seguimiento de auditoría de todas las solicitudes HTTP que el servicio Microsoft Graph recibe y procesa para un inquilino. 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 van a Log Analytics para su análisis. Puede exportarlos a Azure Storage para 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 inteligencia artificial que consultan Microsoft MCP Server for Enterprise y aplicaciones de Microsoft como Outlook, Microsoft Teams o los portales de administración de Microsoft.
Este servicio está disponible en estas implementaciones nacionales de nube.
| Servicio global | Gobierno de EE. UU. L4 | Us Government L5 (DOD) | China operada por 21Vianet |
|---|---|---|---|
| ✅ | ✅ | ✅ | ✅ |
Requisitos previos
Para usar los registros de actividad de Microsoft Graph, necesita los siguientes privilegios.
- Una licencia de inquilino Microsoft Entra ID P1 o P2.
- Un administrador con un rol de administrador de Microsoft Entra compatible. 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 Azure con uno de los siguientes destinos de registro configurados y permisos para usar datos en los destinos de registro correspondientes.
- Un área de trabajo de Azure Log Analytics para enviar registros a Azure Monitor
- Una cuenta de Azure Storage en la que tiene permisos de claves de lista
- Un espacio de nombres 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 Logs Analytics.
Sugerencia
Las solicitudes a Microsoft MCP Server for Enterprise tienen un RequestUri que incluye /enterprise.
| Column | Tipo | Descripción |
|---|---|---|
| AadTenantId | string | El identificador de inquilino de AZURE AD. |
| ApiVersion | string | La versión de API del evento. |
| AppId | string | 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 | 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. Identificador de solicitud de cliente cuando se envía. Si no se envía ningún identificador de solicitud de cliente, el valor será igual al identificador de operación. |
| DeviceId | string | Identificador del dispositivo desde el que se originó la solicitud de autenticación. |
| DurationMs | Entero | Duración de la solicitud en milisegundos. |
| IdentityProvider | string | Proveedor de identidades que autenticó el asunto del token. |
| IPAddress | string | Dirección IP del cliente desde donde se produjo la solicitud. |
| _IsBillable | string | Especifica si la ingesta de los datos es facturable. Cuando _IsBillable es false ingesta no se factura a la cuenta de Azure |
| Ubicación | cadena | Nombre de la región que atendió la solicitud. |
| OperationId | string | Identificador del lote. En el caso de las solicitudes no por lotes, esto será único por solicitud. En el caso de las solicitudes por lotes, será igual para todas las solicitudes del lote. |
| Id. de solicitud | string | Identificador que representa la solicitud. |
| RequestMethod | string | Método HTTP del evento. |
| RequestUri | string | Uri de la solicitud. |
| ResponseSizeBytes | Entero | Tamaño de la respuesta en bytes. |
| ResponseStatusCode | Entero | Código de estado de respuesta HTTP para el evento. |
| Funciones | string | Roles en notificaciones de token. |
| Scopes | string | Ámbitos en notificaciones de token. |
| ServicePrincipalId | string | Identificador del servicePrincipal que realiza la solicitud. |
| SessionId | string | Identificador único de la sesión de autenticación. |
| SignInActivityId | string | Identificador que representa las actividades de inicio de sesión. |
| SourceSystem | string | El tipo de agente por el que se recopiló el evento. Por ejemplo, OpsManager para el agente de Windows, ya sea conexión directa o Operations Manager, Linux para todos los agentes linux o Azure para Azure Diagnostics |
| TenantId | string | Identificador del área de trabajo de Log Analytics |
| TimeGenerated | datetime | Fecha y hora en que se recibió la solicitud. |
| TokenIssuedAt | datetime | Marca de tiempo en la que se emitió el token. |
| Tipo | string | Nombre de la tabla |
| UniqueTokenId | string | Identificador de token único de la llamada API usada para realizar el cambio auditado. |
| UserAgent | string | Información del agente de usuario relacionada con la solicitud. |
| UserId | string | Identificador del usuario que realiza la solicitud. |
| Wids | string | Denota los roles de todo el inquilino asignados a este usuario. |
Casos de uso comunes para los registros de actividad de Microsoft Graph
- Vea todas las transacciones realizadas por aplicaciones y otros clientes de API a las que ha dado su consentimiento en el inquilino.
- Busque las actividades que realiza una cuenta de usuario en peligro en el inquilino.
- Cree detecciones y análisis de comportamiento para detectar el uso sospechoso o inusual de las API de Microsoft Graph.
- Investigue la asignación con privilegios inesperada o sospechosa de permisos de aplicación.
- Detecte comportamientos problemáticos o inesperados para las aplicaciones cliente, como volúmenes de llamadas extremos.
- Supervise las interacciones del cliente de IA con las API de Microsoft Graph, incluidas las solicitudes de aplicaciones de inteligencia artificial y Microsoft MCP Server for Enterprise.
- Correlacionar las solicitudes de Microsoft Graph realizadas por un usuario o aplicación con información de inicio de sesión.
Configuración de registros de actividad de Microsoft Graph
Stream registros a través de la configuración de diagnóstico en el Azure Portal o mediante las API de Azure Resource Manager. Para más información, consulte los siguientes artículos:
- Integración de registros de actividad con registros de Azure Monitor
- Configuración de diagnosticSettings mediante la API de Azure Resource Manager
Use los artículos siguientes para configurar destinos de almacenamiento:
Estimaciones de planificación de costos
Si ya tiene una licencia Microsoft Entra ID P1, necesita una suscripción Azure para configurar el área de trabajo de Log Analytics, la cuenta de almacenamiento o Event Hubs. Obtiene la suscripción Azure sin costo, pero paga por usar Azure recursos.
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. Use estas estimaciones solo para consideraciones generales.
| Usuarios en el inquilino | Almacenamiento (GiB al mes) | Mensajes de Event Hubs (por mes) | registros de supervisión 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 los 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 funcionalidades reducidas. Para obtener más información, consulte Establecer el plan de datos de registro de una tabla en Básico o Analytics.
ejemplos de consulta de registros de Azure Monitor
Si envía registros de actividad de Microsoft Graph a un área de trabajo de Log Analytics, puede consultar los registros mediante Lenguaje de consulta Kusto (KQL). Para obtener más información sobre las consultas en el área de trabajo de Log Analytics, consulte Análisis de registros de actividad Microsoft Entra con Log Analytics. Puede usar estas consultas para la exploración de datos, crear reglas de alertas, compilar paneles de Azure o integrarlas en las aplicaciones personalizadas mediante la API de registros de Azure Monitor o el SDK de consultas.
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 los recursos consultados o modificados por usuarios potencialmente peligrosos:
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 y los registros de inicio de sesión de Microsoft Graph. Es posible que los registros de actividad de las aplicaciones de Microsoft no 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 series temporales:
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 permite ver las actividades de una aplicación multiinquilino en otro inquilino.
- No puede filtrar los registros de actividad de Microsoft Graph mediante la configuración de diagnóstico en Azure Monitor. Sin embargo, hay opciones disponibles para reducir los costos en Azure área de trabajo de Log Analytics. Para obtener más información, vea Transformación área de trabajo.
- En la mayoría de las regiones, los eventos están disponibles y se entregan al destino de configuración en un plazo de 30 minutos. En casos menos comunes, algunos eventos pueden tardar hasta 2 horas en entregarse al destino.