M365Con 2027 – бесплатная онлайн-конференция · 11–22 Jan 2027 · 120 sessions→ m365con.net

Блог · Mirko Peters

Выявляем слепые зоны соответствия требованиям Microsoft 365 с помощью Microsoft Graph

By ·

Добро пожаловать обратно в наш подкаст и сопутствующий технический блог! Если вы когда-либо доверяли готовой панели соответствия Microsoft 365 и считали, что всё w…

Automatically translated with AI from the original post. Read the English original

▶ BLOGUncovering M365Compliance Blindspots…M365.FM
Titelbild: Uncovering M365 Compliance Blindspots with Microsoft Graph

Добро пожаловать обратно в подкаст и наш сопутствующий технический блог! Если вы когда-либо доверяли стандартной панели соответствия требованиям 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 (превращаем данные в решения)

  1. Стандартизация вывода: CSV/JSON с едиными именами полей (tenant, incidentId, workload, userId, userUPN, severity, status, created, lastAction, caseId)

  2. Загрузка: помещайте файлы в защищённое хранилище, которое Purview может читать (например, ADLS Gen2)

  3. Теги и метки: применяйте метки конфиденциальности или пользовательские теги (например, «DLP-PII-High») для маршрутизации

  4. Дашборды: Purview (или Power BI поверх данных Purview) для трендов, владельцев и анализа SLA

  5. Автоматизация: правила уведомления владельцев дел о повторах и эскалациях; еженедельные 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. Продолжайте совершенствовать скрипты, защищайте разрешения приложений и начинайте выводить данные, которые ваши дашборды до сих пор скрывали!

Entities in this article

eDiscovery Compliance Dashboards Microsoft Graph Microsoft Purview Data loss prevention (DLP) PowerShell Microsoft 365 Exchange Online JSON

Related articles

RSS