Выявляем слепые зоны соответствия требованиям Microsoft 365 с помощью Microsoft Graph
By Mirko Peters ·
Добро пожаловать обратно в наш подкаст и сопутствующий технический блог! Если вы когда-либо доверяли готовой панели соответствия Microsoft 365 и считали, что всё w…
Automatically translated with AI from the original post. Read the English original
Добро пожаловать обратно в подкаст и наш сопутствующий технический блог! Если вы когда-либо доверяли стандартной панели соответствия требованиям Microsoft 365 и считали, что все учтено полностью, вы можете находиться в ложном чувстве безопасности. Стандартные панели соответствия требованиям задуманы как сводки, а не как абсолютная истина. Критически важные сигналы, такие как срабатывания предотвращения утечки данных (DLP), действия eDiscovery и базовые оповещения безопасности, часто находятся за конечными точками Microsoft Graph, которые требуют отдельных разрешений, расширенных параметров запроса и правильного сопоставления данных. В этом подробном разборе мы выясним, почему в ваших встроенных отчетах не хватает важной информации, перечислим точные конечные точки Graph, которые нужно опросить, и покажем, как передать эти необработанные данные напрямую в Microsoft Purview для понятной и обоснованной отчетности. Чтобы послушать наш полный разговор на эту тему, обязательно посмотрите связанный выпуск подкаста: Find Missing Microsoft 365 Compliance Data with Graph.
Обзор
Стандартные панели соответствия требованиям — это сводки, а не истина. Критически важные сигналы (срабатывания DLP, действия eDiscovery, оповещения безопасности) часто находятся за конечными точками Graph с отдельными разрешениями. Мы разбираем точные API, области доступа и шаблоны скриптов, чтобы получить полные доказательства и централизовать их в Purview для понятной и обоснованной отчетности.
Кому это поможет
Владельцам функций соответствия, юридического направления и управления рисками, которым нужны доказательства, готовые к аудиту
Администраторам M365 и Entra, которые строят отчетность и автоматизацию
Командам безопасности, которые сопоставляют телеметрию DLP, eDiscovery и оповещений
Слепые зоны (почему стандартные панели что-то пропускают)
Агрегация и задержка: сводки интерфейса не включают детали вложенных инцидентов и недавнюю активность
Пробелы в области охвата: действия eDiscovery и совпадения DLP могут находиться за пределами стандартных экспортов
Разделенные разрешения: конечным точкам /security и /compliance требуются разные области доступа
Отсутствие связей: панели редко сопоставляют инциденты с пользователями, владельцами данных (custodians) и этапами дел
Ключевые конечные точки Graph (список для копирования)
Оповещения безопасности (широкий охват)
Конечная точка:
/security/alertsили/security/alerts_v2Разрешения приложения (примеры):
SecurityEvents.Read.All(или Alerts.Read.All в новых моделях)Применение: хронология оповещений, серьезность, статус, назначения
Политики и активность DLP (утечка данных)
Конечные точки (набор зависит от доступности в клиенте):
/security/dataLossPreventionPolicies(перечень политик)/security/dlpIncidentsили расширенные конечные точки инцидентов DLP в пространстве имен security (зависит от клиента)
Разрешения приложения:
SecurityEvents.Read.All(и/или специальные области чтения DLP, если они доступны)Применение: совпадения, расположения (Exchange/SharePoint/Teams), решения по инцидентам
eDiscovery (дела и действия)
/compliance/ediscovery/casesДочерние пути:
/custodians,/searches,/reviewSets,/noncustodialDataSources,/operationsРазрешения приложения:
eDiscovery.Read.All(и запись, если вы управляете делами)Применение: статус дел, холды, владельцы данных, экспорты, действия рецензентов
Аудит и контекст входа (вспомогательные доказательства)
/auditLogs/directoryAudits,/auditLogs/signInsРазрешения приложения:
AuditLog.Read.All,Directory.Read.AllПрименение: кто, что и когда изменил, контекст сеансов
Совет: многие полезные нагрузки соответствия имеют глубокую вложенность, поэтому заранее планируйте использование
$expand, постраничную навигацию через@odata.nextLinkи объединение с/users/{id}для отображаемых имен и подразделений.
Аутентификация и разрешения (простой путь без лишних сложностей)
Используйте разрешения приложения (субъект-служба) для фоновых заданий без участия пользователя
Регистрируйте отдельные приложения для безопасности и основного Graph, если в вашей организации требуется разделение привилегий
Предоставляйте согласие только на области с минимально необходимыми правами; храните секреты и сертификаты в Key Vault
Реализуйте экспоненциальную задержку повторов для кодов 429/503 и записывайте
x-ms-request-idв журналы
Шаблоны скриптов (PowerShell или Python)
Выбор и расширение: запрашивайте только нужные поля через
$select=…, а для вложенных сущностей используйте$expand=…Фильтрация и ограничение по времени:
$filter=createdDateTime ge {ISO8601}для дельта-выборокПостраничная выборка: проходите по
@odata.nextLinkв цикле; никогда не предполагайте, что результат умещается на одной страницеНормализация: заранее сопоставляйте ID пользователей и объектов с именами и подразделениями, чтобы результаты было легко читать
Объединение для контекста: дополняйте инциденты метаданными пользователя, сайта, команды или дела перед экспортом
Интеграция с Purview (превращаем данные в решения)
Стандартизация вывода: CSV/JSON с едиными именами полей (tenant, incidentId, workload, userId, userUPN, severity, status, created, lastAction, caseId)
Загрузка: помещайте файлы в защищённое хранилище, которое Purview может читать (например, ADLS Gen2)
Теги и метки: применяйте метки конфиденциальности или пользовательские теги (например, «DLP-PII-High») для маршрутизации
Дашборды: Purview (или Power BI поверх данных Purview) для трендов, владельцев и анализа SLA
Автоматизация: правила уведомления владельцев дел о повторах и эскалациях; еженедельные PDF-дайджесты
Пилот за 30 минут (пошагово)
0–10 мин: регистрация приложения +
SecurityEvents.Read.All/eDiscovery.Read.All; создайте секрет или сертификат10–20 мин: напишите скрипт для одного эндпоинта (алерты или дела) с постраничной выборкой и
$filterза последние 7 дней20–30 мин: обогатите данные через
/users, экспортируйте CSV, поместите его в путь ADLS и постройте простой график
KPI, которые доказывают ценность
Доля инцидентов с заполненными владельцем и решением
Среднее время от инцидента до дела (или до рецензента)
Аккаунты и локации с повторными нарушениями за 30 дней
Разница с количеством в стандартном дашборде (закрытие пробелов)
Время цикла аудита (сэкономленные часы на подготовку доказательств)
Типичные ошибки (и их исправление)
Пустые результаты → неверные области доступа или использование делегированных разрешений там, где требуются разрешения приложения
Неполные данные → не использован
$expandили не разобраны вложенные коллекцииЧастичные данные → нет постраничной выборки; сохранена только первая страница
Несовпадение имён → нет обогащения через
/usersили данные HRУстаревшие дашборды → нет плановых запусков; добавьте задание и оповещения об ошибках
Быстрые победы на этой неделе
Выгрузите алерты за последние 7 дней из
/security/alertsи сравните количество с порталомЭкспортируйте открытые дела eDiscovery и список хранителей; передайте юристам для проверки
Проведите проверку инцидентов DLP, отметьте повторные и откройте задачи в Purview
Настройте еженедельный пакет доказательств (CSV + PDF) на почтовый ящик комплаенса
Часто задаваемые вопросы
Нужно ли быть разработчиком? Нет, достаточно PowerShell или коротких скриптов на Python.
Зачем разрешения приложения? Большинство эндпоинтов /security и /compliance требуют безличного доступа с высокими привилегиями.
Можно ли остаться в PowerShell? Да, используйте Microsoft Graph PowerShell SDK и обрабатывайте
$top,$filter,$expandи постраничную выборку.Обязателен ли Purview? Строго говоря, нет, но он превращает сырой JSON в аудируемые процессы и дашборды.
Заключение
Дашборды лишь суммируют, а Graph показывает всю картину. Выбирайте нужные эндпоинты, настраивайте аутентификацию, используйте постраничную выборку и разворачивание вложенных данных, а затем централизуйте всё в Purview. Так вы перейдёте от формальной проверки соответствия к доказуемой видимости в реальном времени, не утопая в ручных выгрузках. Чтобы глубже разобрать эти слепые зоны и узнать экспертные советы, послушайте наш подкаст Find Missing Microsoft 365 Compliance Data with Graph. Продолжайте совершенствовать скрипты, защищайте разрешения приложений и начинайте выводить данные, которые ваши дашборды до сих пор скрывали!