Compartilhar via


Autenticar a entrega de eventos em manipuladores de eventos (Grade de Eventos do Azure)

Este artigo fornece informações sobre como autenticar a entrega de eventos para manipuladores de eventos.

Visão geral

A Grade de Eventos do Azure usa métodos de autenticação diferentes para entregar eventos aos manipuladores de eventos. `

Método de autenticação Manipuladores de evento com suporte Descrição
Chave de acesso - Hubs de Evento
- Barramento de Serviço
- Filas de Armazenamento
- Conexões híbridas de retransmissão
- Azure Functions
- Blobs de Armazenamento (fila de mensagens mortas)
As chaves de acesso são buscadas usando as credenciais da entidade de serviço da Grade de Eventos. As permissões são concedidas à Grade de Eventos quando você registra o provedor de recursos da Grade de Eventos na assinatura do Azure.
Identidade do sistema gerenciado
&
Controle de acesso baseado em função
- Hubs de Evento
- Barramento de Serviço
- Filas de Armazenamento
- Blobs de Armazenamento (fila de mensagens mortas)
Habilita a identidade do sistema gerenciado do tópico e adiciona-a na função apropriada no destino. Para obter detalhes, confira Usar identidades atribuídas pelo sistema para entrega de eventos.
Autenticação de token de portador com webhook protegido do Microsoft Entra webhook Consulte a seção Autenticar a entrega de eventos em pontos de extremidade de webhook para obter detalhes.
Segredo do cliente como um parâmetro de consulta webhook Confira a seção Como usar o segredo do cliente como um parâmetro de consulta para obter detalhes.

Observação

Caso você proteja a sua função do Azure com um aplicativo do Microsoft Entra, é necessário usar a abordagem de webhook genérica com o gatilho HTTP. Use o ponto de extremidade da função do Azure como uma URL de webhook ao adicionar a assinatura.

Usar identidades atribuídas pelo sistema para entrega de eventos

Você pode habilitar uma identidade gerenciada atribuída pelo sistema para um tópico ou domínio e usar a identidade para encaminhar eventos para destinos com suporte, como filas e tópicos do Barramento de Serviço, hubs de eventos e contas de armazenamento.

Estas são as etapas:

  1. Crie um tópico ou um domínio com uma identidade atribuída pelo sistema ou habilite a identidade em um tópico ou domínio existente. Para obter mais informações, confira Habilitar a identidade gerenciada para um tópico do sistema ou Habilitar a identidade gerenciada para um tópico personalizado ou um domínio
  2. Adicione a identidade a uma função apropriada (por exemplo, remetente de dados do Barramento de Serviço) no destino (por exemplo, uma fila do Barramento de Serviço). Para obter mais informações, confira Permitir à identidade o acesso ao destino da Grade de Eventos
  3. Ao criar assinaturas de evento, habilite o uso da identidade para entregar eventos ao destino. Para obter mais informações, confira Criar uma assinatura de evento que usa a identidade.

Para obter instruções passo a passo detalhadas, confira Entrega de eventos com uma identidade gerenciada.

Autenticar a entrega de eventos em pontos de extremidade de webhook

As seções a seguir descrevem como autenticar a entrega de eventos em pontos de extremidade do webhook. Use um mecanismo de handshake de validação, independentemente do método usado. Confira Entrega de eventos do webhook para obter detalhes.

Using Microsoft Entra ID

Você pode proteger o ponto de extremidade do webhook que é usado para receber eventos da Grade de Eventos usando o Microsoft Entra ID. Será necessário criar um aplicativo do Microsoft Entra, uma função e uma entidade de serviço em seu aplicativo autorizando a Grade de Eventos e configurar a assinatura do evento para usar o aplicativo do Microsoft Entra. Saiba como Configurar o Microsoft Entra ID com a Grade de Eventos.

Usando o segredo do cliente como um parâmetro de consulta

Também é possível proteger o ponto de extremidade do webhook adicionando parâmetros de consulta à URL de destino do webhook como parte da criação de uma Assinatura de Evento. Defina um dos parâmetros de consulta como o segredo do cliente; por exemplo, um token de acesso ou um segredo compartilhado. O serviço da Grade de Eventos inclui todos esses parâmetros de consulta em cada solicitação de entrega de evento para o webhook. O serviço de webhook pode recuperar e validar o segredo. Se o segredo do cliente for atualizado, a assinatura do evento também precisará de atualização. Para evitar falhas na entrega durante essa rotação de segredo, faça com que o webhook aceite segredos novos e antigos por um período limitado antes de atualizar a assinatura do evento com o novo segredo.

Como os parâmetros de consulta podem conter segredos do cliente, eles são tratados com cuidado extra. Eles são armazenados como criptografados e não ficam acessíveis a operadores de serviço. Eles não são registrados como parte dos logs/rastreamentos do serviço. Ao recuperar as propriedades da Assinatura do Evento, os parâmetros de consulta de destino não são retornados por padrão. Por exemplo: o parâmetro --include-Full-Endpoint-URL deve ser usado na CLI do Azure.

Para obter mais informações sobre como entregar eventos a webhooks, confira Entrega de eventos do webhook

Importante

A Grade de Eventos do Azure é compatível somente com pontos de extremidade HTTPS do webhook.

Validação de ponto de extremidade com CloudEvents v 1.0

Se você já estiver familiarizado com a Grade de Eventos, talvez esteja ciente do handshake de validação do ponto de extremidade para prevenir abusos. O CloudEvents v1.0 implementa a própria semântica de proteção contra abuso usando o método HTTP OPTIONS. Para ler mais sobre isso, confira Webhooks HTTP 1.1 para entrega de eventos – versão 1.0. Ao usar o esquema CloudEvents para saída, a Grade de Eventos usa com a proteção de abuso do CloudEvents v1.0 em vez do mecanismo de evento de validação da Grade de Eventos. Para obter mais informações, confira Usar o esquema CloudEvents v1.0 com a Grade de Eventos.

Confira Autenticar clientes de publicação para saber mais sobre como autenticar clientes que estão publicando eventos em tópicos ou domínios.