Criar aplicações interativas do Microsoft Graph com feed em tempo real

Este artigo descreve um padrão de integração comum do Microsoft Graph para um cenário empresarial que se baseia em dados e funcionalidades do serviço de e-mail do Microsoft 365. Utiliza as APIs do Microsoft Graph para ler dados, chamar operações de e-mail e receber notificações de alteração do Microsoft Graph através de webhooks através do canal WebSocket. Este cenário tem os seguintes requisitos de arquitetura:

  • Um tipo de integração de aplicação.
  • Um fluxo de dados bidirecional entre o Microsoft 365 e a aplicação.
  • Um volume de dados baixo, uma vez que serve um único utilizador.
  • Uma latência de dados média aceitável para notificações push.

Este padrão utiliza várias opções de integração do Microsoft Graph, incluindo APIs, notificações de alteração e, opcionalmente, APIs de controlo de alterações. Para receber notificações de alteração através do WebSocket, a aplicação utiliza o SDK do SignalR, que abstrai e simplifica a gestão do WebSocket.

O diagrama seguinte mostra a arquitetura desta solução.

Um diagrama que mostra como o serviço de notificação do Microsoft Graph interage com o Exchange, as APIs REST do Microsoft Graph, uma aplicação com webhook e Microsoft Entra ID para autenticação

Componentes da solução

A arquitetura da solução inclui os seguintes componentes:

  • Microsoft Entra ID, que é necessário para gerir a autenticação das APIs do Microsoft Graph e suporta permissões delegadas e de aplicação para ativar o fluxo OAuth.
  • Serviços de notificação do Microsoft Graph, que gere subscrições de notificação e entrega notificações de alteração a aplicações cliente.
  • APIs RESTful do Microsoft Graph acedidas através de um único ponto final: https://graph.microsoft.com.
  • Uma aplicação móvel personalizada que implementa lógica personalizada e webhooks e comunica com o Microsoft Graph.

Considerações

As seguintes considerações suportam a utilização deste padrão de integração:

  • Disponibilidade: a aplicação personalizada deve estar altamente disponível no dispositivo edge e pode suportar um modo offline quando uma ligação fiável à Internet não está disponível.

  • Latência: as APIs HTTP RESTful do Microsoft Graph normalmente respondem dentro de um segundo, mas a latência geral depende da velocidade da ligação à Internet. As notificações do Microsoft Graph são geradas em segundos após a alteração, mas a sua entrega depende da ligação à Internet, dos SLAs do fornecedor móvel e da disponibilidade do webhook.

  • Escalabilidade: os serviços do Microsoft Graph são pedidos de suporte e pedidos de suporte altamente dimensionáveis, distribuídos geograficamente e para milhões de clientes.

  • Complexidade da solução: esta solução requer código personalizado para orquestrar APIs, manter subscrições de notificação e receber notificações de alteração através de webhooks. Embora esta solução não necessite de elasticidade, tem de suportar os utilizadores em diferentes condições de rede e, potencialmente, lidar com um pico de notificações de alteração. Por conseguinte, esta solução é altamente complexa.