Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
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:
- Integrar logs de atividades com logs do Monitor do Azure
- Defina diagnosticSettings por meio da API Azure Resource Manager
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.