Поделиться через


Доступ к журналам действий Microsoft Graph

Журналы действий Microsoft Graph предоставляют журнал аудита всех HTTP-запросов, которые служба Microsoft Graph получает и обрабатывает для клиента. Администраторы клиента могут включить сбор журналов и настроить подчиненные назначения с помощью параметров диагностики в Azure Monitor. Журналы отправляются в Log Analytics для анализа. Вы можете экспортировать их в хранилище Azure для долгосрочного хранения или передавать их с помощью Центры событий Azure во внешние средства SIEM для создания оповещений, анализа или архивации.

Вы получаете журналы запросов API из бизнес-приложений, клиентов API, пакетов SDK, клиентов ИИ, запрашивающих Microsoft MCP Server for Enterprise, и приложений Майкрософт, таких как Outlook, Microsoft Teams или порталы администрирования Майкрософт.

Эта служба доступна в этих национальных облачных развертываниях.

Глобальная служба Правительство США L4 Правительство США L5 (DOD) Китай управляется 21Vianet

Предварительные условия

Чтобы использовать журналы действий Microsoft Graph, вам потребуются следующие привилегии.

  • Лицензия клиента Microsoft Entra ID P1 или P2.
  • Администратор с поддерживаемой ролью администратора Microsoft Entra. Администратор безопасности — единственная роль администратора с наименьшими привилегиями, поддерживаемая для настройки параметров диагностики.
  • Подписка Azure с одним из следующих назначений журналов и разрешениями на использование данных в соответствующих назначениях журналов.
    • Рабочая область Log Analytics Azure для отправки журналов в монитор Azure
    • Учетная запись хранения Azure с разрешениями на получение списка ключей
    • Пространство имен Центры событий Azure для подключения к сторонним решениям

Какие данные доступны в журналах действий Microsoft Graph

В этой статье показаны данные о запросах API, доступных для журналов действий Microsoft Graph в интерфейсе Logs Analytics.

Совет

Запросы к Microsoft MCP Server for Enterprise имеют requestUri , который включает в себя /enterprise.

Столбец Тип Описание
AadTenantId string Идентификатор клиента Azure AD.
ApiVersion string Версия API события.
AppId string Идентификатор приложения.
ATContent string Зарезервировано для последующего использования.
ATContentH string Зарезервировано для последующего использования.
ATContentP string Зарезервировано для последующего использования.
_BilledSize real Размер записи в байтах
ClientAuthMethod int Указывает, как клиент прошел проверку подлинности. Для общедоступного клиента значение равно 0. Если используются идентификатор клиента и секрет клиента, значение равно 1. Если сертификат клиента использовался для проверки подлинности, значение равно 2.
ClientRequestId string Необязательный параметр. Идентификатор запроса клиента при отправке. Если идентификатор запроса клиента не отправлен, значение будет равно идентификатору операции.
DeviceId string Идентификатор устройства, с которого был создан запрос на проверку подлинности.
DurationMs int Длительность запроса в миллисекундах.
IdentityProvider string Поставщик удостоверений, прошедший проверку подлинности субъекта маркера.
IPAddress string IP-адрес клиента, из которого был выполнен запрос.
_IsBillable string Указывает, является ли прием данных платным. Если _IsBillable false прием не взимается с вашей учетной записи Azure
Расположение строка Имя региона, обслуженного запросу.
OperationId string Идентификатор пакета. Для непакетных запросов это будет уникально для каждого запроса. Для пакетных запросов это будет одинаковым для всех запросов в пакете.
RequestId string Идентификатор, представляющий запрос.
RequestMethod string Метод HTTP события.
RequestUri string Универсальный код ресурса (URI) запроса.
ResponseSizeBytes int Размер ответа в байтах.
ResponseStatusCode int Код состояния HTTP-ответа для события.
Роли string Роли в утверждениях маркеров.
Scopes string Области в утверждениях маркеров.
ServicePrincipalId string Идентификатор servicePrincipal, выполняющего запрос.
SessionId string Уникальный идентификатор сеанса проверки подлинности.
SignInActivityId string Идентификатор, представляющий действия входа.
SourceSystem string Тип агента, с помощью который было собрано событие. Например, OpsManager для агента Windows— прямое подключение или Operations Manager, Linux для всех агентов Linux или Azure для Диагностика Azure
Идентификатор клиента string Идентификатор рабочей области Log Analytics
TimeGenerated datetime Дата и время получения запроса.
TokenIssuedAt datetime Метка времени, на который был выдан маркер.
Тип string Имя таблицы
UniqueTokenId string Уникальный идентификатор маркера вызова API, используемого для внесения изменений в аудит.
UserAgent string Сведения об агенте пользователя, связанные с запросом.
UserId string Идентификатор пользователя, выполняющего запрос.
Wids string Обозначает роли на уровне клиента, назначенные этому пользователю.

Распространенные варианты использования журналов действий Microsoft Graph

  • Просмотрите все транзакции, выполняемые приложениями и другими клиентами API, на которые вы дали согласие в клиенте.
  • Найдите действия, которые скомпрометированная учетная запись пользователя выполняет в вашем клиенте.
  • Создавайте методы обнаружения и анализ поведения, чтобы обнаружить подозрительное или необычное использование API Microsoft Graph.
  • Изучите непредвиденные или подозрительные привилегированные назначения разрешений приложения.
  • Выявляйте проблемное или непредвиденное поведение клиентских приложений, например экстремальные объемы вызовов.
  • Отслеживайте взаимодействие клиентов ИИ с API Microsoft Graph, включая запросы от приложений ИИ и Microsoft MCP Server для предприятий.
  • Сопоставляйте запросы Microsoft Graph, сделанные пользователем или приложением, с данными для входа.

Настройка журналов действий Microsoft Graph

Stream журналы с помощью параметра диагностики в портал Azure или с помощью API Azure Resource Manager. Дополнительные сведения см. в следующих статьях:

Используйте следующие статьи, чтобы настроить назначения хранилища:

Оценки планирования затрат

Если у вас уже есть лицензия Microsoft Entra ID P1, вам потребуется Azure подписка для настройки рабочей области Log Analytics, учетной записи хранения или Центров событий. Вы получаете подписку на Azure бесплатно, но вы платите за использование Azure ресурсов.

Объем зарегистрированных данных и затраты могут значительно отличаться в зависимости от размера клиента и приложений в клиенте, взаимодействующих с API Microsoft Graph. В следующей таблице приведены оценки размера данных журнала, которые помогут вам рассчитать цены. Используйте эти оценки только для общего рассмотрения.

Пользователи в клиенте Хранилище (ГиБ в месяц) Сообщения Центров событий (в месяц) Журналы мониторинга Azure (ГиБ в месяц)
1,000 14 62,000 15
100,000 1,000 4 800 000 1 200

Ознакомьтесь со следующими сведениями о ценах для каждой службы:

Снижение затрат для Log Analytics

Если вы отправляете журналы в рабочую область Log Analytics, но вам нужны только журналы, отфильтрованные по условиям, например пропуск определенных столбцов или строк, вы можете частично сократить затраты, применив преобразование рабочей области в таблице Журналы действий Microsoft Graph. Дополнительные сведения о преобразованиях рабочих областей, о том, как они влияют на затраты на прием данных и как применить преобразование к журналам действий Microsoft Graph, см. в статье Преобразования сбора данных в Azure Monitor.

Альтернативный подход к снижению затрат на Log Analytics заключается в переходе на базовый план данных журнала, который снижает счета за счет предоставления более низких возможностей. Дополнительные сведения см. в разделе Установка плана данных журнала таблицы в значение Базовый или Аналитика.

Примеры запросов журналов мониторинга Azure

Если вы отправляете журналы действий Microsoft Graph в рабочую область Log Analytics, вы можете запросить журналы с помощью язык запросов Kusto (KQL). Дополнительные сведения о запросах в рабочей области Log Analytics см. в статье Анализ журналов действий Microsoft Entra с помощью Log Analytics. Эти запросы можно использовать для просмотра данных, создания правил генерации оповещений, создания Azure панелей мониторинга или интеграции с пользовательскими приложениями с помощью API мониторинга журналов Azure или пакета SDK для запросов.

Следующий запрос Kusto определяет 20 основных сущностей, выполняющих запросы к группам ресурсов, которые завершаются сбоем из-за авторизации:

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

Следующий запрос Kusto определяет ресурсы, запрашиваемые или измененные потенциально рискованными пользователями:

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

Следующий запрос Kusto позволяет сопоставить журналы действий Microsoft Graph и журналы входа. Журналы действий из приложений Майкрософт могут не содержать совпадающие записи журнала входа. Дополнительные сведения см. в разделе Известные ограничения журналов входа.

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

Следующий запрос Kusto определяет приложения, для которых применяется регулирование:

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 

Следующий запрос позволяет отобразить диаграмму временных рядов:

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 
    )

Ограничения

  • Функция журналов действий Microsoft Graph позволяет администраторам клиента собирать журналы для клиента ресурса. Эта функция не позволяет просматривать действия мультитенантного приложения в другом клиенте.
  • Вы не можете фильтровать журналы действий Microsoft Graph с помощью параметров диагностики в Azure Monitor. Однако доступны варианты снижения затрат в рабочей области Azure Log Analytics. Дополнительные сведения см. в разделе Преобразование рабочей области.
  • В большинстве регионов события доступны и доставляются в место назначения конфигурации в течение 30 минут. В менее распространенных случаях доставка некоторых событий в место назначения может занять до 2 часов.