Autenticar um aplicativo com o Microsoft Entra ID para acessar recursos de Hubs de Eventos

O Microsoft Azure fornece gerenciamento de controle de acesso integrado para recursos e aplicativos baseados no Microsoft Entra ID. Uma das principais vantagens de usar o Microsoft Entra ID com Hubs de Eventos do Azure é que você não precisa mais armazenar suas credenciais no código. Em vez disso, você pode solicitar um token de acesso OAuth 2.0 da plataforma de identidade da Microsoft. O nome do recurso para solicitar um token é https://eventhubs.azure.net/, e é o mesmo para todas as nuvens/locatários (para clientes Kafka, o recurso para solicitar um token é https://<namespace>.servicebus.windows.net). O Microsoft Entra autentica a entidade de segurança (um usuário, grupo, entidade de serviço ou identidade gerenciada) que executa o aplicativo. Se a autenticação for bem-sucedida, a ID do Microsoft Entra retornará um token de acesso ao aplicativo e o aplicativo poderá usar o token de acesso para autorizar a solicitação aos recursos dos Hubs de Eventos do Azure.

Quando uma função é atribuída a uma entidade de segurança do Microsoft Entra, o Azure concede acesso a esses recursos para essa entidade de segurança. O acesso pode ter como escopo o nível de assinatura, o grupo de recursos, o namespace Hubs de Eventos ou qualquer recurso sob ele. Uma segurança do Microsoft Entra pode atribuir funções a um usuário, um grupo, uma entidade de serviço de aplicativo ou uma identidade gerenciada para recursos do Azure.

Nota

Uma definição de função é uma coleção de permissões. O controle de acesso baseado em função do Azure (Azure RBAC) controla como essas permissões são impostas por meio da atribuição de função. Uma atribuição de função é composta por três elementos: principal de segurança, definição de função e âmbito. Para obter mais informações, consulte Noções básicas sobre as diferentes funções.

Funções internas para Hubs de Eventos do Azure

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:

Para funções internas do Registro de Esquema, consulte Funções do Registro de Esquema.

Importante

Nossa versão de visualização suportava a adição de privilégios de acesso a dados de Hubs de Eventos à função de Proprietário ou Colaborador. No entanto, os privilégios de acesso a dados para as funções de Proprietário e Colaborador não são mais honrados. Se você estiver usando a função Proprietário ou Colaborador, alterne para usar a função Proprietário de Dados dos Hubs de Eventos do Azure.

Autenticar a partir de uma aplicação

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.

As seções a seguir mostram como configurar seu aplicativo nativo ou aplicativo Web para autenticação com a plataforma de identidade Microsoft 2.0. Para obter mais informações sobre a plataforma de identidade da Microsoft 2.0, consulte Visão geral da plataforma de identidade da Microsoft (v2.0).

Para obter uma visão geral do fluxo de concessão de código OAuth 2.0, consulte Autorizar acesso a aplicativos Web do Microsoft Entra usando o fluxo de concessão de código OAuth 2.0.

Registrar seu aplicativo com um locatário do Microsoft Entra

A primeira etapa no uso do Microsoft Entra ID para autorizar recursos de Hubs de Eventos é registrar seu aplicativo cliente com um locatário do Microsoft Entra no portal do Azure. Siga as etapas no Guia de início rápido: registre um aplicativo na plataforma de identidade da Microsoft para registrar um aplicativo no ID do Microsoft Entra que representa seu aplicativo tentando acessar recursos de Hubs de Eventos.

Ao registrar seu aplicativo cliente, você fornece informações sobre o aplicativo. Em seguida, a ID do Microsoft Entra fornece uma ID de cliente (também chamada de ID de aplicativo) que você pode usar para associar seu aplicativo ao tempo de execução do Microsoft Entra. Para saber mais sobre a ID do cliente, consulte Objetos principais de aplicativo e serviço na ID do Microsoft Entra.

Nota

Se você registrar seu aplicativo como um aplicativo nativo, poderá especificar qualquer URI válido para o URI de redirecionamento. Para aplicativos nativos, esse valor não precisa ser uma URL real. Para aplicativos Web, o URI de redirecionamento deve ser um URI válido, pois especifica a URL para a qual os tokens são fornecidos.

Depois de registrar seu aplicativo, você verá o ID do aplicativo (cliente) em Configurações:

Captura de ecrã a mostrar a página de registo da aplicação com o ID da aplicação realçado.

Criar um segredo do cliente

A aplicação precisa de um segredo do cliente para provar a respetiva identidade quando pede um token. Siga as etapas de Adicionar um segredo do cliente para criar um segredo do cliente para seu aplicativo no Microsoft Entra ID.

Atribuir funções do Azure com o portal do Azure

Atribua uma das funções de Hubs de Eventos à entidade de serviço do aplicativo no escopo desejado (namespace de Hubs de Eventos, grupo de recursos, assinatura). Para obter os passos detalhados, veja o artigo Atribuir funções do Azure com o portal do Azure.

Depois de definir a função e seu escopo, você pode testar esse comportamento com exemplos neste local do GitHub. Para saber mais sobre como gerenciar o acesso aos recursos do Azure usando o RBAC (controle de acesso baseado em função) do Azure e o portal do Azure, consulte este artigo.

Bibliotecas de clientes para aquisição de tokens

Depois de registrar seu aplicativo e conceder-lhe permissões para enviar/receber dados nos Hubs de Eventos do Azure, você pode adicionar código ao seu aplicativo para autenticar uma entidade de segurança e adquirir o token OAuth 2.0. Para autenticar e adquirir o token, você pode usar uma das bibliotecas de autenticação da plataforma de identidade da Microsoft ou outra biblioteca de código aberto que ofereça suporte a OpenID ou Connect 1.0. Seu aplicativo pode usar o token de acesso para autorizar uma solicitação nos Hubs de Eventos do Azure.

Para cenários em que a aquisição de tokens é suportada, consulte a seção Cenários da Biblioteca de Autenticação da Microsoft (MSAL) para o repositório .NET GitHub.

Exemplos

  • Exemplos de RBAC usando o pacote herdado .NET Microsoft.Azure.EventHubs. Estamos trabalhando na criação de uma nova versão deste exemplo usando o pacote Azure.Messaging.EventHubs mais recente. Consulte a Identidade Gerenciada já convertida.
  • Exemplo de RBAC usando o pacote Java herdado com.microsoft.azure.eventhubs. Você pode usar o guia de migração para migrar este exemplo para usar o novo pacote (com.azure.messaging.eventhubs). Para saber mais sobre como usar o novo pacote em geral, consulte exemplos aqui.

Veja os seguintes artigos relacionados: