Controlar o acesso a eventos
Os Hubs de Eventos do Azure dão suporte à ID do Microsoft Entra e às assinaturas de acesso compartilhado (SAS) para lidar com autenticação e autorização. O Azure fornece as seguintes funções internas do Azure para autorizar o acesso aos dados dos Hubs de Eventos usando o Microsoft Entra ID e OAuth:
- Proprietário de Dados dos Hubs de Eventos do Azure: use esta função para dar acesso completo aos recursos dos Hubs de Eventos.
- Remetente de Dados dos Hubs de Eventos do Azure: use esta função para conceder acesso de envio aos recursos dos Hubs de Eventos.
- Recetor de Dados dos Hubs de Eventos do Azure: use esta função para conceder acesso de recebimento aos recursos dos Hubs de Eventos.
Autorizar acesso com identidades gerenciadas
Para autorizar uma solicitação ao serviço Hubs de Eventos a partir de uma identidade gerenciada em seu aplicativo, você precisa definir as configurações de controle de acesso baseado em função do Azure para essa identidade gerenciada. Os Hubs de Eventos do Azure definem funções do Azure que englobam permissões para envio e leitura de Hubs de Eventos. Quando a função do Azure é atribuída a uma identidade gerenciada, a identidade gerenciada recebe acesso aos dados dos Hubs de Eventos no escopo apropriado.
Autorizar o acesso com a plataforma de identidade da Microsoft
Uma das principais vantagens de usar o Microsoft Entra ID com Hubs de Eventos é que suas credenciais não precisam mais ser armazenadas em seu código. Em vez disso, você pode solicitar um token de acesso OAuth 2.0 da plataforma de identidade da Microsoft. O Microsoft Entra autentica a entidade de segurança (um usuário, um grupo ou entidade de serviço) que executa o aplicativo. Se a autenticação for bem-sucedida, a ID do Microsoft Entra retornará o token de acesso ao aplicativo e o aplicativo poderá usar o token de acesso para autorizar solicitações aos Hubs de Eventos do Azure.
Autorizar o acesso a editores de Hubs de Eventos com assinaturas de acesso compartilhado
Um editor de eventos define um ponto de extremidade virtual para um Hubs de Eventos. O editor só pode ser usado para enviar mensagens para um hub de eventos e não receber mensagens. Normalmente, um hub de eventos emprega um editor por cliente. Todas as mensagens enviadas para qualquer um dos editores de um hub de eventos são enfileiradas dentro desse hub de eventos. Os editores permitem um controle de acesso refinado.
A cada cliente de Hubs de Eventos é atribuído um token exclusivo que é carregado para o cliente. Um cliente que possui um token só pode enviar para um editor e nenhum outro editor. Se vários clientes compartilharem o mesmo token, cada um deles compartilhará o editor.
Todos os tokens são atribuídos com chaves de assinatura de acesso compartilhado. Normalmente, todos os tokens são assinados com a mesma chave. Os clientes não estão cientes da chave, o que impede que os clientes fabriquem tokens. Os clientes operam com os mesmos tokens até que eles expirem.
Autorizar o acesso a consumidores de Hubs de Eventos com assinaturas de acesso compartilhado
Para autenticar aplicativos back-end que consomem dos dados gerados pelos produtores de Hubs de Eventos, a autenticação de token de Hubs de Eventos exige que seus clientes tenham os direitos de gerenciamento ou os privilégios de escuta atribuídos ao namespace de Hubs de Eventos ou à instância ou tópico do hub de eventos. Os dados são consumidos de Hubs de Eventos usando grupos de consumidores. Embora a política SAS ofereça um escopo granular, esse escopo é definido apenas no nível da entidade e não no nível do consumidor. Isso significa que os privilégios definidos no nível do namespace ou na instância do hub de eventos ou no nível do tópico são para os grupos de consumidores dessa entidade.