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:
- 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: uma entidade de segurança atribuída a essa função pode enviar eventos para um hub de eventos específico ou para todos os hubs de eventos em um namespace.
- Recetor de Dados dos Hubs de Eventos do Azure: uma entidade de segurança atribuída a essa função pode receber eventos de um hub de eventos específico ou de todos os hubs de eventos em um namespace.
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:
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.
Conteúdos relacionados
- Para saber mais sobre o Azure RBAC, consulte O que é o controle de acesso baseado em função do Azure (Azure RBAC)?
- Para saber como atribuir e gerenciar atribuições de função do Azure com o Azure PowerShell, a CLI do Azure ou a API REST, consulte estes artigos:
- Utilizar o Azure PowerShell para adicionar ou remover atribuições de funções do Azure
- Utilizar a CLI do Azure para adicionar ou remover atribuições de funções do Azure
- Utilizar a API REST para adicionar ou remover atribuições de funções do Azure
- Adicionar atribuições de função do Azure usando modelos do Azure Resource Manager
Veja os seguintes artigos relacionados:
- Autenticar uma identidade gerenciada com o Microsoft Entra ID para acessar recursos de Hubs de Eventos
- Autenticar solicitações para Hubs de Eventos do Azure usando Assinaturas de Acesso Compartilhado
- Autorizar o acesso aos recursos dos Hubs de Eventos utilizando o Microsoft Entra ID
- Autorizar o acesso aos recursos dos Hubs de Eventos usando Assinaturas de Acesso Compartilhado