使用 Microsoft Graph 按速度检索事件

本文介绍业务场景的常见 Microsoft Graph 集成模式,该方案需要对协作内容进行安全分析,以防止不安全或不适当的共享、传输或使用敏感数据,例如数据丢失防护 (DLP) 方案中。

此业务方案是一种非交互式用例,需要用户与各种消息系统交互时触发的更改数据馈送。 它不依赖于 Microsoft 365 功能行为,并具有以下体系结构要求:

  • 数据集成类型。
  • 从 Microsoft 365 边界到应用的出站数据流。
  • 大中型企业的高数据量。
  • 准实时数据延迟,以最大程度地减少数据丢失。

此方案的最佳集成选项是使用由 Microsoft Graph 更改通知启用的 Pub/Sub 集成模式,该通知可以传递事件通知以及传递给Azure 事件中心的共享消息的内容。 此模式允许应用异步接收更改通知,并且不会将 Microsoft Graph 紧密耦合到接收方应用程序。 这种类型的应用交互通常称为拉取模式。

下图显示了此解决方案的体系结构。

显示与Microsoft Entra ID、Azure 事件中心、应用服务、函数应用和目标服务交互的Microsoft Graph 通知服务的关系图。

解决方案组件

解决方案体系结构包括以下组件:

  • Azure 事件中心,它允许你在一秒内以低延迟引入大量小于 1 MB 的小消息,并存储它们以供连续处理。
  • Azure 应用服务,它允许你以首选编程语言生成和托管 Web 应用、移动后端和 RESTful API,而无需管理基础结构。 它提供自动缩放和高可用性,支持 Windows 和 Linux,并支持从 GitHub、Azure DevOps 或任何 Git 存储库进行自动部署。
  • Microsoft Entra ID,这是管理Microsoft Graph API 的身份验证所必需的,并支持启用 OAuth 流的委托权限和应用程序权限。
  • 函数应用是一个无服务器组件,允许横向扩展新通知的突发,并具有处理通知并将其发送到目标服务的业务逻辑。
  • Microsoft Graph 通知服务,用于管理通知订阅并将更改通知传递到客户端。

注意事项

以下注意事项支持使用此集成模式:

  • 可用性:Azure 事件中心跨多个可用性区域提供高可用性。

  • 延迟:Azure 事件中心每秒可以低延迟处理数百万个事件。

  • 可伸缩性:Azure 事件中心根据服务层级提供长达 90 天的事件存储和保留期,从而允许自定义应用按自己的节奏使用和处理事件。

  • 解决方案复杂性:此解决方案需要自定义代码来维护订阅,以及加密密钥来处理数据。 由于此解决方案不需要弹性和对意外事件做出反应的能力,因此与推送模式下的 Webhook 集成相比,它不那么复杂。 此解决方案具有中等复杂性。