使用实时源生成交互式Microsoft Graph 应用

本文介绍依赖于 Microsoft 365 电子邮件服务数据和功能的业务方案的常见 Microsoft Graph 集成模式。 它使用 Microsoft Graph API 通过 WebSocket 通道使用 Webhook 读取数据、调用电子邮件操作和接收Microsoft Graph 更改通知。 此方案具有以下体系结构要求:

  • 应用程序集成类型。
  • Microsoft 365 与应用之间的双向数据流。
  • 为单个用户提供服务时,数据量较低。
  • 推送通知可接受的中等数据延迟。

此模式使用多个 Microsoft Graph 集成选项,包括 API、更改通知以及(可选)更改跟踪 API。 为了通过 WebSocket 接收更改通知,应用使用 SignalR SDK,它抽象化并简化了 WebSocket 管理。

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

显示 Microsoft Graph 通知服务如何与 Exchange、Microsoft Graph REST API、具有 Webhook 的应用以及身份验证Microsoft Entra ID交互的关系图

解决方案组件

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

  • Microsoft Entra ID,这是管理Microsoft Graph API 的身份验证所必需的,并支持启用 OAuth 流的委托权限和应用程序权限。
  • Microsoft Graph 通知服务,用于管理通知订阅并将更改通知传递到客户端应用。
  • Microsoft通过单个终结点访问的 Graph RESTful API: https://graph.microsoft.com
  • 实现自定义逻辑和 Webhook 并与 Microsoft Graph 通信的自定义移动应用。

注意事项

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

  • 可用性:自定义应用应在边缘设备上高度可用,并且当可靠的 Internet 连接不可用时,该应用可以支持脱机模式。

  • 延迟:Microsoft Graph RESTful HTTP API 通常在一秒内响应,但总体延迟取决于 Internet 连接速度。 Microsoft Graph 通知在更改后几秒钟内生成,但其传递取决于 Internet 连接、移动供应商 SLA 和 Webhook 可用性。

  • 可伸缩性:Microsoft Graph 服务具有高度可缩放性、异地分布性,并支持数百万个客户端的请求和通知。

  • 解决方案复杂性:此解决方案需要自定义代码来协调 API、维护通知订阅以及通过 Webhook 接收更改通知。 尽管此解决方案不需要弹性,但它需要支持不同网络条件下的用户,并可能处理突发的更改通知。 因此,此解决方案非常复杂。