Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Журналы действий 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. Дополнительные сведения см. в следующих статьях:
- Интеграция журналов действий с журналами Azure Monitor
- Настройка diagnosticSettings с помощью 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 часов.