Aceder aos registos de atividades do Microsoft Graph
Os registos de atividades do Microsoft Graph são um registo de auditoria de todos os pedidos HTTP que o serviço Microsoft Graph recebeu e processou para um inquilino. Os administradores inquilinos podem ativar a coleção e configurar destinos a jusante para estes registos através das definições de diagnóstico no Azure Monitor. Os registos são armazenados no Log Analytics para análise; pode exportá-los para o Armazenamento do Azure para armazenamento ou transmissão em fluxo de longo prazo com Hubs de Eventos do Azure para ferramentas SIEM externas para alertas, análises ou arquivos.
Todos os registos de pedidos de API feitos a partir de aplicações de linha de negócio, clientes de API, SDKs e aplicações da Microsoft, como o Outlook, o Microsoft Teams ou o centro de administração do Microsoft Entra, estão disponíveis.
Este serviço está disponível nas seguintes implementações de cloud nacionais.
Serviço global | US Government L4 | US Government L5 (DOD) | China operada pela 21Vianet |
---|---|---|---|
✅ | ✅ | ✅ | ❌ |
Pré-requisitos
Para aceder aos registos de atividades do Microsoft Graph, precisa dos seguintes privilégios.
- Uma licença de inquilino P1 ou P2 Microsoft Entra ID no seu inquilino.
- Um administrador com uma função de administrador Microsoft Entra suportada. O Administrador de Segurança é a única função de administrador com menos privilégios suportada para configurar as definições de diagnóstico.
- Uma subscrição do Azure com um dos seguintes destinos de registo está configurada e permissões para aceder aos dados nos destinos de registo correspondentes.
- Uma área de trabalho do Azure Log Analytics para enviar registos para o Azure Monitor
- Uma Conta de Armazenamento do Azure para a qual tem permissões de Chaves de Lista
- Um espaço de nomes Hubs de Eventos do Azure para integrar com soluções de terceiros
Que dados estão disponíveis nos registos de atividades do Microsoft Graph?
Para obter informações sobre os dados disponíveis relacionados com pedidos de API para registos de atividades do Microsoft Graph na interface do Logs Analytics, veja Referência dos Registos do Azure Monitor.
Casos de utilização comuns para registos de atividades do Microsoft Graph
- Obtenha visibilidade total sobre as transações efetuadas por aplicações e outros clientes de API aos quais deu consentimento no inquilino.
- Identifique as atividades que uma conta de utilizador comprometida realizou no seu inquilino.
- Crie deteções e análise comportamental para identificar a utilização suspeita ou anómalo das APIs do Microsoft Graph.
- Investigue a atribuição de permissões de aplicação com privilégios inesperados ou suspeitos.
- Identifique comportamentos problemáticos ou inesperados para aplicações cliente, como volumes de chamadas extremos.
- Correlacione os pedidos do Microsoft Graph feitos por um utilizador ou aplicação com informações de início de sessão.
Configurar para receber os registos de atividades do Microsoft Graph
Pode configurar para transmitir os registos em fluxo através da Definição de Diagnóstico no portal do Azure ou através das APIs Resource Manager do Azure. Para obter mais informações, veja a documentação de orientação nos seguintes artigos:
- Integrar registos de atividades com registos do Azure Monitor
- Configurar diagnosticSettings através da API de Resource Manager do Azure
Os artigos seguintes guiam-no para configurar os destinos de armazenamento:
Estimativas de planeamento de custos
Se já tiver uma licença do Microsoft Entra ID P1, precisa de uma subscrição do Azure para configurar a área de trabalho do Log Analytics, a Conta de armazenamento ou os Hubs de Eventos. A subscrição do Azure não tem custos, mas tem de pagar para utilizar os recursos do Azure.
A quantidade de dados registados e, portanto, o custo incorrido, pode variar significativamente consoante o tamanho do inquilino e as aplicações no seu inquilino que interagem com as APIs do Microsoft Graph. A tabela seguinte fornece algumas estimativas para o tamanho dos dados de registo para ajudar no cálculo do preço. Utilize estas estimativas apenas para consideração geral.
Utilizadores no inquilino | GiB/mês de Armazenamento | Mensagens/mês dos Hubs de Eventos | GiB/mês dos Registos do Azure Monitor |
---|---|---|---|
1000 | 14 | 62 K | 15 |
100000 | 1000 | 4,8 M | 1200 |
Veja os seguintes cálculos de preços para os respetivos serviços:
Redução de custos do Log Analytics
Se estiver a ingerir os registos numa Área de Trabalho do Log Analytics, mas apenas estiver interessado em registos filtrados por critérios, como omitir determinadas colunas ou linhas, pode reduzir parcialmente os custos ao aplicar uma transformação de área de trabalho na tabela Registos de Atividades do Microsoft Graph. Para saber mais sobre as transformações da área de trabalho, como afeta os custos de ingestão e como aplicar uma transformação aos Registos de Atividades do Microsoft Graph, veja Transformações de recolha de dados no Azure Monitor.
Uma abordagem alternativa para reduzir o custo do Log Analytics é mudar para o plano de dados de registo Básico, o que reduz as faturas ao fornecer capacidades reduzidas. Para obter mais informações, veja Definir o plano de dados de registo de uma tabela como Básico ou Análise.
Exemplos de consulta dos Registos do Azure Monitor
Se enviar registos de atividades do Microsoft Graph para uma área de trabalho do Log Analytics, pode consultar os registos com Linguagem de Consulta Kusto (KQL). Para obter mais informações sobre consultas na Área de Trabalho do Log Analytics, veja Analisar Microsoft Entra registos de atividades com o Log Analytics. Pode utilizar estas consultas para exploração de dados, criar regras de alerta, criar dashboards do Azure ou integrar nas suas aplicações personalizadas com a API de Registos do Azure Monitor ou o SDK de Consultas.
A seguinte consulta Kusto identifica as 20 principais entidades que fazem pedidos aos recursos de grupos que estão a falhar 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 os recursos consultados ou modificados por utilizadores potencialmente de risco:
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 seguinte consulta Kusto permite-lhe correlacionar os registos de atividades e os registos de início de sessão do Microsoft Graph. Os registos de atividades de aplicações da Microsoft podem não ter todas entradas de registo de início de sessão correspondentes. Para obter mais informações, veja Limitações conhecidas dos registos de início de sessão.
MicrosoftGraphActivityLogs
| where TimeGenerated > ago(7d)
| join kind=leftouter (union SigninLogs, AADNonInteractiveUserSignInLogs, AADServicePrincipalSignInLogs, AADManagedIdentitySignInLogs, ADFSSignInLogs
| where TimeGenerated > ago(7d))
on $left.SignInActivityId == $right.UniqueTokenIdentifier
A seguinte consulta Kusto identifica as aplicações que estão a ser limitadas:
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 seguinte permite-lhe compor 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
- A funcionalidade de registos de atividades do Microsoft Graph permite que os administradores inquilinos recolham registos para o inquilino do recurso. Esta funcionalidade não lhe permite ver as atividades de uma aplicação multi-inquilino noutro inquilino.
- Não pode filtrar os registos de atividades do Microsoft Graph através das definições de diagnóstico no Azure Monitor. No entanto, estão disponíveis opções para reduzir os custos na Área de Trabalho do Log Analytics do Azure. Para obter mais informações, veja Transformação da área de trabalho.
- Na maioria das regiões, os eventos estão disponíveis e entregues no destino da configuração no prazo de 30 minutos. Em casos menos comuns, alguns eventos podem demorar até 2 horas a serem entregues no destino.