Acessar logs de atividades do Microsoft Graph

Os logs de atividades do Microsoft Graph fornecem uma trilha de auditoria de todas as solicitações HTTP que o serviço Microsoft Graph recebe e processa para um locatário. Os administradores de locatários podem ativar a coleta de logs e configurar destinos downstream usando as configurações de diagnóstico no Azure Monitor. Os logs vão para o Log Analytics para análise. Você pode exportá-los para o Armazenamento do Azure para armazenamento de longo prazo ou transmiti-los com os Hubs de Eventos do Azure para ferramentas SIEM externas para alertas, análises ou arquivamento.

Você obtém logs para solicitações de API de aplicativos de linha de negócios, clientes de API, SDKs, clientes de IA que consultam o Microsoft MCP Server para Empresas e aplicativos da Microsoft, como Outlook, Microsoft Teams ou os portais de administração da Microsoft.

Esse serviço está disponível nessas implantações de nuvem nacional.

Serviço global Governo dos EUA L4 US Government L5 (DOD) China operada pela 21Vianet

Pré-requisitos

Para usar os logs de atividades do Microsoft Graph, você precisa dos privilégios a seguir.

  • Uma licença de locatário P1 ou P2 do Microsoft Entra ID.
  • Um administrador com uma função de administrador do Microsoft Entra com suporte. O Administrador de Segurança é a única função de administrador com menos privilégios com suporte para definir as configurações de diagnóstico.
  • Uma assinatura do Azure com um dos seguintes destinos de log configurados e permissões para usar dados nos destinos de log correspondentes.
    • Um workspace do Azure Log Analytics para enviar logs ao Azure Monitor
    • Uma conta de Armazenamento do Azure na qual você tenha permissões Listar Chaves
    • Um namespace de Hubs de Eventos do Azure para conectar-se a soluções de terceiros

Quais dados estão disponíveis nos logs de atividades do Microsoft Graph

Este artigo mostra os dados sobre solicitações de API disponíveis para logs de atividades do Microsoft Graph na interface do Logs Analytics.

Dica

As solicitações para o Microsoft MCP Server para Empresas têm um RequestUri que inclui /enterprise.

Aviso

Não armazene segredos ou outras informações confidenciais, como senhas, credenciais, tokens de acesso ou atualização ou cadeias de conexão, em atributos de objeto de diretório ou em qualquer outro recurso auditável exposto pelo Microsoft Graph. Os logs de atividades do Microsoft Graph, juntamente com outros logs de auditoria e de entrada, capturam detalhes sobre solicitações de API, incluindo URIs de solicitação. Qualquer valor confidencial passado em uma solicitação ou armazenado em tal recurso pode ser registrado nesses logs, onde pode ser lido por administradores de locatários e por qualquer workspace do Log Analytics downstream, conta de Armazenamento do Azure ou sistema SIEM para o qual os logs são exportados. Os atributos de objeto de diretório não são um armazenamento seguro para segredos; Em vez disso, use um repositório de segredos dedicado, como o Azure Key Vault.

Coluna Tipo Descrição
AadTenantId string A ID do locatário do Azure AD.
ApiVersion string A versão da API do evento.
AppId string O identificador do aplicativo.
ATContent string Reserved for future use.
ATContentH string Reserved for future use.
ATContentP string Reserved for future use.
_BilledSize real O tamanho do registro em bytes
ClientAuthMethod int Indica como o cliente foi autenticado. Para um cliente público, o valor é 0. Se a ID do cliente e o segredo do cliente forem usados, o valor será 1. Se um certificado de cliente foi usado para autenticação, o valor é 2.
ClientRequestId string Opcional. O identificador de solicitação do cliente quando enviado. Se nenhum identificador de solicitação do cliente for enviado, o valor será igual ao identificador da operação.
DeviceId string O identificador do dispositivo do qual a solicitação de autenticação se originou.
DurationMs int A duração da solicitação em milissegundos.
IdentityProvider string O provedor de identidade que autenticou o assunto do token.
IPAddress string O endereço IP do cliente de onde a solicitação ocorreu.
_IsBillable string Especifica se a ingestão dos dados é faturável. Quando _IsBillable é false a ingestão não é cobrada em sua conta Azure
Local string O nome da região que serviu a solicitação.
OperationId string O identificador para o lote. Para solicitações não em lote, isso será exclusivo por solicitação. Para solicitações em lote, será o mesmo para todas as solicitações em lote.
RequestId string O identificador que representa a solicitação.
Método de solicitação string O método HTTP do evento.
RequestUri string O URI da solicitação.
ResponseSizeBytes int O tamanho da resposta em bytes.
ResponseStatusCode int O código de status da resposta HTTP do evento.
Funções string As funções em declarações de token.
Scopes string Os escopos em declarações de token.
ServicePrincipalId string O identificador do servicePrincipal que faz a solicitação.
SessionId string O identificador exclusivo da sessão de autenticação.
SignInActivityId string O identificador que representa as atividades de entrada.
SourceSystem string O tipo de agente pelo qual o evento foi coletado. Por exemplo, OpsManager para o agente do Windows, a conexão direta ou o Operations Manager, Linux para todos os agentes do Linux ou Azure para o Diagnóstico do Azure
TenantId string A ID do workspace do Log Analytics
TimeGenerated datetime A data e hora em que a solicitação foi recebida.
TokenIssuedAt datetime O carimbo de data/hora em que o token foi emitido.
Tipo string O nome da tabela
UniqueTokenId string O identificador de token exclusivo da chamada à API usada para fazer a alteração auditada.
UserAgent string As informações do agente do usuário relacionadas à solicitação.
UserId string O identificador do usuário que faz a solicitação.
Wids string Indica as funções em todo o locatário atribuídas a esse usuário.

Casos de uso comuns para logs de atividades do Microsoft Graph

  • Veja todas as transações feitas por aplicativos e outros clientes de API com os quais você consentiu no locatário.
  • Encontre atividades que uma conta de usuário comprometida realiza em seu locatário.
  • Crie detecções e análises comportamentais para detectar o uso suspeito ou incomum de APIs do Microsoft Graph.
  • Investigar atribuição privilegiada inesperada ou suspeita de permissões de aplicativo.
  • Identifique comportamentos problemáticos ou inesperados para aplicativos cliente, como volumes extremos de chamadas.
  • Monitore as interações do cliente de IA com APIs do Microsoft Graph, incluindo solicitações de aplicativos de IA e do Microsoft MCP Server para Empresas.
  • Correlacione solicitações do Microsoft Graph feitas por um usuário ou aplicativo com informações de entrada.

Configurar logs de atividades do Microsoft Graph

Stream logs por meio da Configuração de Diagnóstico no portal do Azure ou usando APIs Azure Resource Manager. Para saber mais, confira os seguintes artigos:

Use os seguintes artigos para configurar destinos de armazenamento:

Estimativas de planejamento de custos

Se você já tiver uma licença do Microsoft Entra ID P1, precisará de uma assinatura do Azure para configurar o workspace, a conta de armazenamento ou os Hubs de Eventos do Log Analytics. Você obtém a assinatura do Azure sem custo, mas paga para usar os recursos do Azure.

A quantidade de dados registrados e o custo incorrido podem variar significativamente dependendo do tamanho do locatário e dos aplicativos em seu locatário que interagem com as APIs do Microsoft Graph. A tabela a seguir fornece estimativas do tamanho dos dados de log para ajudá-lo a calcular o preço. Use essas estimativas apenas para consideração geral.

Usuários no locatário Armazenamento (GiB por mês) Mensagens dos Hubs de Eventos (por mês) Logs do Monitor do Azure (GiB por mês)
1.000 14 62,000 15
100.000 1.000 4.800.000 1.200

Consulte os seguintes detalhes de preços para cada serviço:

Redução de custo para o Log Analytics

Se você ingerir os logs em um Workspace do Log Analytics, mas estiver interessado apenas em logs filtrados por um critério, como omitir determinadas colunas ou linhas, poderá reduzir parcialmente os custos aplicando uma transformação do workspace na tabela Logs de Atividades do Microsoft Graph. Para saber mais sobre transformações de espaço de trabalho, como isso afeta os custos de ingestão e como aplicar uma transformação aos logs de atividades do Microsoft Graph, consulte Transformações de coleta de dados no Azure Monitor.

Uma abordagem alternativa para reduzir o custo do Log Analytics é mudar para o plano de dados de log básico, que reduz as contas, fornecendo recursos reduzidos. Para obter mais informações, consulte Definir o plano de dados de log de uma tabela como Básico ou Analítico.

Exemplos de consulta de Logs do Monitor do Azure

Se você enviar logs de atividades do Microsoft Graph para um workspace do Log Analytics, poderá consultar os logs usando a Linguagem de Consulta Kusto (KQL). Para obter mais informações sobre consultas no Workspace do Log Analytics, consulte Analisar logs de atividades do Microsoft Entra com o Log Analytics. Você pode usar essas consultas para exploração de dados, para criar regras de alerta, criar painéis do Azure ou integrar em seus aplicativos personalizados usando a API de Logs do Monitor do Azure ou o SDK de Consulta.

A consulta Kusto a seguir identifica as 20 principais entidades que fazem solicitações a recursos de grupos que estão falhando devido à autorização:

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

A seguinte consulta Kusto identifica recursos consultados ou modificados por usuários potencialmente arriscados:

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

A consulta Kusto a seguir permite correlacionar os logs de atividades e os logs de login do Microsoft Graph. Os logs de atividades de aplicativos da Microsoft podem não ter entradas de log de entrada correspondentes. Para obter mais informações, consulte Limitações conhecidas dos logs de login.

MicrosoftGraphActivityLogs
| where TimeGenerated > ago(7d)
| join kind=leftouter (union SigninLogs, AADNonInteractiveUserSignInLogs, AADServicePrincipalSignInLogs, AADManagedIdentitySignInLogs, ADFSSignInLogs
    | where TimeGenerated > ago(7d))
    on $left.SignInActivityId == $right.UniqueTokenIdentifier

A consulta Kusto a seguir identifica os aplicativos que estão sendo limitados:

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 

A consulta a seguir permite renderizar um gráfico de série 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 
    )

Limitações

  • O recurso de logs de atividades do Microsoft Graph permite que os administradores de locatários coletem logs para o locatário do recurso. Esse recurso não permite que você veja as atividades de um aplicativo multilocatário em outro locatário.
  • Não é possível filtrar logs de atividades do Microsoft Graph por meio das configurações de diagnóstico no Azure Monitor. No entanto, há opções disponíveis para reduzir custos no Workspace da Análise de Log do Azure. Para obter mais informações, consulte Transformação do espaço de trabalho.
  • Na maioria das regiões, os eventos estão disponíveis e são entregues ao destino da configuração em 30 minutos. Em casos menos comuns, alguns eventos podem levar até 2 horas para serem entregues ao destino.