Получение событий с вашей скоростью с помощью Microsoft Graph

В этой статье описывается распространенный шаблон интеграции Microsoft Graph для бизнес-сценария, который требует анализа безопасности содержимого совместной работы, чтобы предотвратить небезопасный или недопустимый общий доступ, передачу или использование конфиденциальных данных, например в сценариях защиты от потери данных (DLP).

Этот бизнес-сценарий является неинтерактивным вариантом использования, в котором требуется канал данных изменений, инициируемых пользователями, взаимодействующими с различными системами обмена сообщениями. Он не зависит от функционального поведения Microsoft 365 и имеет следующие требования к архитектуре:

  • Тип интеграции данных.
  • Исходящий поток данных из границ Microsoft 365 в приложение.
  • Большой объем данных для средних и крупных предприятий.
  • Задержка данных практически в реальном времени, чтобы свести к минимуму потерю данных.

Лучший вариант интеграции для этого сценария — использовать шаблон интеграции Pub/Sub, включенный уведомлениями об изменениях Microsoft Graph, который может доставлять уведомления о событиях, а также содержимое общего сообщения, доставляемого Центры событий Azure. Этот шаблон позволяет приложению получать уведомления об изменениях асинхронно и не тесно связан с приложениями-получателями Microsoft Graph. Этот тип взаимодействия с приложением часто называется режимом вытягивания.

На следующей схеме показана архитектура для этого решения.

Схема, на которую показана служба уведомлений Microsoft Graph, взаимодействующая с Microsoft Entra ID, Центры событий Azure, службами приложений, приложениями-функциями и конечной службой.

Компоненты решения

Архитектура решения включает в себя следующие компоненты:

  • Центры событий Azure, который позволяет принимать большой объем небольших сообщений менее 1 МБ в секунду с низкой задержкой и хранить их для последовательной обработки.
  • Служба приложений Azure, который позволяет создавать и размещать веб-приложения, мобильные серверные серверы и ИНТЕРФЕЙСы API RESTful на предпочитаемом языке программирования без управления инфраструктурой. Он предлагает автоматическое масштабирование и высокий уровень доступности, поддерживает Windows и Linux, а также включает автоматическое развертывание из GitHub, Azure DevOps или любого репозитория Git.
  • Microsoft Entra ID, которая необходима для управления проверкой подлинности для API Microsoft Graph и поддерживает делегированные разрешения и разрешения приложений для включения потока OAuth.
  • Приложение-функция, которое является бессерверным компонентом, который позволяет масштабировать новые уведомления и имеет бизнес-логику для обработки уведомлений и их отправки в целевую службу.
  • Службы уведомлений Microsoft Graph, которые управляют подписками на уведомления и доставляют уведомления об изменениях клиентам.

Рекомендации

Использование этого шаблона интеграции поддерживается следующими рекомендациями.

  • Доступность. Центры событий Azure обеспечить высокий уровень доступности в нескольких зонах доступности.

  • Задержка: Центры событий Azure может обрабатывать миллионы событий в секунду с низкой задержкой.

  • Масштабируемость: Центры событий Azure обеспечить хранение и хранение событий в течение 90 дней в зависимости от уровня служб, что позволяет пользовательскому приложению использовать и обрабатывать события в собственном темпе.

  • Сложность решения. Для этого решения требуется пользовательский код для обслуживания подписок и ключи шифрования для обработки данных. Так как это решение не требует эластичности и возможности реагировать на непредвиденный объем событий, оно менее сложное, чем интеграция с веб-перехватчиками в режиме отправки. Это решение имеет среднюю сложность.