Compartilhar via


Obter eventos à sua velocidade com o Microsoft Graph

Este artigo descreve um padrão de integração comum do Microsoft Graph para um cenário empresarial que requer uma análise de segurança do conteúdo de colaboração para impedir a partilha, transferência ou utilização de dados confidenciais não seguros ou inadequados, como em cenários de Prevenção de Perda de Dados (DLP).

Este cenário empresarial é um caso de utilização não interativo que requer um feed de dados de alterações acionadas pelos utilizadores que interagem com vários sistemas de mensagens. Não depende do comportamento funcional do Microsoft 365 e tem os seguintes requisitos de arquitetura:

  • Um tipo de integração de dados.
  • Um fluxo de dados de saída dos limites do Microsoft 365 para a aplicação.
  • Um volume de dados elevado para empresas médias a grandes.
  • Latência de dados quase em tempo real para minimizar a perda de dados.

A melhor opção de integração para este cenário é utilizar o padrão de integração Pub/Sub ativado pelas notificações de alteração do Microsoft Graph, que podem fornecer notificações de eventos, bem como o conteúdo de uma mensagem partilhada, entregue ao Hubs de Eventos do Azure. Este padrão permite que a aplicação receba notificações de alteração de forma assíncrona e não acopla rigorosamente o Microsoft Graph às aplicações recetores. Este tipo de interação de aplicação é frequentemente denominado modo de solicitação.

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

Um diagrama que mostra o serviço de notificação do Microsoft Graph a interagir com Microsoft Entra ID, Hubs de Eventos do Azure, serviços de aplicações, aplicações de funções e o serviço de destino.

Componentes da solução

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

  • Hubs de Eventos do Azure, que lhe permite ingerir um grande volume de mensagens pequenas, menos de 1 MB, num segundo com baixa latência e armazená-las para processamento consecutivo.
  • Serviço de Aplicativo do Azure, que lhe permite criar e alojar aplicações Web, back-ends móveis e APIs RESTful na sua linguagem de programação preferida, sem gerir a infraestrutura. Oferece dimensionamento automático e elevada disponibilidade, suporta o Windows e o Linux e permite implementações automatizadas a partir do GitHub, do Azure DevOps ou de qualquer repositório git.
  • Microsoft Entra ID, que é necessário para gerir a autenticação para as APIs do Microsoft Graph e suporta permissões delegadas e de aplicação para ativar o fluxo OAuth.
  • A aplicação de funções, que é um componente sem servidor que lhe permite aumentar horizontalmente para picos de novas notificações e tem uma lógica de negócio para processar notificações e enviá-las para um serviço de destino.
  • Serviços de notificação do Microsoft Graph, que gerem subscrições de notificação e entregam notificações de alteração aos clientes.

Considerações

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

  • Disponibilidade: Hubs de Eventos do Azure fornecem elevada disponibilidade em várias zonas de disponibilidade.

  • Latência: Hubs de Eventos do Azure podem processar milhões de eventos por segundo com baixa latência.

  • Escalabilidade: Hubs de Eventos do Azure fornecer armazenamento e retenção de eventos até 90 dias, consoante o escalão de serviço, permitindo assim que a aplicação personalizada consuma e processe eventos ao seu próprio ritmo.

  • Complexidade da solução: esta solução requer código personalizado para manter subscrições e chaves de encriptação para processar os dados. Uma vez que esta solução não requer elasticidade e a capacidade de reagir a um volume inesperado de eventos, é menos complexa do que a integração com webhooks no modo push. Esta solução tem complexidade média.