Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. Pode tentar alterar os diretórios.
O Barramento de Serviço do Azure dá suporte ao uso da ID do Microsoft Entra para autorizar solicitações a entidades do Barramento de Serviço (filas, tópicos, assinaturas ou filtros). Com o Microsoft Entra ID, você pode usar o controle de acesso baseado em função do Azure (Azure RBAC) para conceder permissões a uma entidade de segurança. O principal de segurança pode ser um utilizador, grupo, principal de serviço de aplicação ou uma identidade gerida para recursos do Azure.
Uma das principais vantagens de usar o Microsoft Entra ID com o Barramento de Serviço 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. Se a autenticação for bem-sucedida, o Microsoft Entra ID devolve um token de acesso à aplicação. A aplicação pode então usar o token de acesso para autorizar pedidos aos recursos do Service Bus.
Pode desativar a autenticação de chave local ou de assinatura de acesso partilhada (SAS) para um namespace Service Bus e permitir apenas a autenticação Microsoft Entra. Para obter instruções passo a passo, consulte Desativar a autenticação local.
Descrição geral
Quando uma entidade de segurança (um usuário, grupo ou aplicativo) tenta acessar uma entidade do Service Bus, a solicitação deve ser autorizada. Com o Microsoft Entra ID, o acesso a um recurso é um processo de duas etapas:
- A identidade do principal de segurança é autenticada e um token OAuth 2.0 é devolvido. O nome do recurso para solicitar um token é
https://servicebus.azure.net. - O token é passado como parte de um pedido ao serviço Service Bus para autorizar o acesso ao recurso especificado.
A etapa de autenticação requer que uma solicitação de aplicativo contenha um token de acesso OAuth 2.0 em tempo de execução. Se uma aplicação estiver a correr dentro de uma entidade Azure, como uma máquina virtual Azure, um conjunto de escalas de máquina virtual ou uma aplicação de funções, pode usar uma identidade gerida para aceder aos recursos. Para saber como autenticar pedidos que uma identidade gerida faz ao serviço Service Bus, consulte Usar identidades geridas com Azure Service Bus.
A etapa de autorização requer a atribuição de um ou mais papéis Azure ao principal de segurança. O Service Bus fornece funções Azure que abrangem conjuntos de permissões para recursos do Service Bus. As funções atribuídas a um principal de segurança determinam as permissões que o principal tem sobre os recursos do Service Bus. Para saber mais sobre atribuição de funções Azure ao Service Bus, consulte funções incorporadas Azure para Azure Service Bus.
Aplicativos nativos e aplicativos Web que fazem solicitações ao Service Bus também podem autorizar com o Microsoft Entra ID. Este artigo mostra como solicitar um token de acesso e usá-lo para autorizar solicitações de recursos do Service Bus.
Funções predefinidas do Azure para o Barramento de Serviço do Azure
O Microsoft Entra autoriza direitos de acesso a recursos protegidos por meio do Azure RBAC. O Barramento de Serviço do Azure define um conjunto de funções internas do Azure que englobam conjuntos comuns de permissões usadas para acessar entidades do Barramento de Serviço. Você também pode definir funções personalizadas para acessar os dados.
Quando uma função do Azure é atribuída a uma entidade de segurança do Microsoft Entra, o Azure concede acesso a esses recursos a essa entidade de segurança. O acesso pode ser delimitado ao nível de subscrição, grupo de recursos, namespace do Service Bus ou entidade (fila, tópico ou subscrição). Uma entidade de segurança do Microsoft Entra pode ser um usuário, um grupo, uma entidade de serviço de aplicativo ou uma identidade gerenciada para recursos do Azure.
Para o Azure Service Bus, o modelo Azure RBAC ajuda a proteger a gestão de namespaces e todos os recursos relacionados através do portal Azure e da API de gestão de recursos Azure. O Azure fornece as seguintes funções internas para autorizar o acesso a um namespace do Service Bus:
- Proprietário de Dados do Barramento de Serviço do Azure: use essa função para dar acesso total aos recursos do Barramento de Serviço.
- Remetente de Dados Azure Service Bus: Use esta função para conceder acesso de envio ao namespace do Service Bus e às suas entidades.
- Receptor de Dados do Barramento de Serviço Azure: use essa função para conceder acesso de receção ao namespace do Barramento de Serviço Azure e às suas entidades.
Âmbito do recurso
Antes de atribuir uma função do Azure a uma entidade de segurança, determine o escopo de acesso que a entidade de segurança deve ter. As melhores práticas ditam que é sempre melhor conceder apenas o âmbito mais restrito possível.
A lista a seguir descreve os níveis nos quais você pode definir o escopo de acesso aos recursos do Service Bus, começando com o escopo mais restrito:
Fila, tópico ou subscrição: A atribuição de funções aplica-se à entidade específica do Service Bus. Atualmente, o portal Azure não suporta atribuir utilizadores, grupos ou identidades geridas a funções do Service Bus Azure ao nível da subscrição de tópicos.
Namespace do Barramento de Serviço: A atribuição de função abrange toda a topologia do Barramento de Serviço sob o namespace, assim como para a fila ou assinatura de tópico associada.
Grupo de recursos: a atribuição de função aplica-se a todos os recursos do Service Bus no grupo de recursos.
Subscrição Azure: A atribuição de funções aplica-se a todos os recursos do Service Bus em todos os grupos de recursos da subscrição.
Lembre-se de que as atribuições de função do Azure podem levar até cinco minutos para se propagar.
Para mais informações sobre como os papéis incorporados são definidos, consulte Compreender definições de papéis Azure. Para obter informações sobre como criar funções personalizadas do Azure, consulte Funções personalizadas do Azure.
Autenticação a partir de uma aplicação
Uma das principais vantagens de usar o Microsoft Entra ID com o Service Bus é 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, uma entidade de serviço ou uma identidade gerenciada para recursos do Azure) que executa o aplicativo. Se a autenticação for bem-sucedida, o ID Microsoft Entra devolve o token de acesso à aplicação. A aplicação pode então usar o token de acesso para autorizar pedidos ao Service Bus.
As secções seguintes mostram como configurar a sua aplicação nativa ou aplicação web para autenticação com a Microsoft Identity platform 2.0. Para mais informações sobre a plataforma, consulte O que é a Microsoft identity platform?.
Para uma visão geral do fluxo de concessão de código OAuth 2.0, consulte Microsoft identity platform e OAuth 2.0 authorization code flow.
Registe a sua aplicação com um inquilino do Microsoft Entra
A primeira etapa para usar a ID do Microsoft Entra para autorizar entidades do Service Bus é registrar seu aplicativo cliente com um locatário do Microsoft Entra no portal do Azure. Quando regista a sua aplicação cliente, fornece informações sobre a aplicação ao Active Directory. O Microsoft Entra ID fornece então um ID de cliente (também chamado de ID de aplicação) que pode usar para associar a sua aplicação ao runtime do Microsoft Entra. Para saber mais sobre a ID do cliente, consulte Objetos principais de aplicativo e serviço na ID do Microsoft Entra.
Para registar a sua candidatura com o Microsoft Entra ID, siga os passos em Registar uma candidatura no Microsoft Entra ID.
Nota
Se registares a tua aplicação como uma aplicação nativa, podes especificar qualquer URI válido para o URI de redirecionamento. Para aplicações nativas, este valor não tem de 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 registar a sua candidatura, o ID da Aplicação (cliente) e o ID do Diretório (inquilino) aparecem em Definições. Toma nota destes valores. Vais precisar deles para correr a aplicação.
Criar um segredo do cliente
A aplicação precisa de um segredo do cliente para provar a respetiva identidade quando pede um token. Para adicionar o segredo do cliente, siga estes passos:
No portal Azure, vai ao registo da tua aplicação se ainda não estiveres na página.
No menu da esquerda, selecione Certificados & Segredos.
Em Segredos do cliente, selecione Novo segredo do cliente para criar um novo segredo.
Forneça uma descrição do segredo, escolha o intervalo de expiração e depois selecione Adicionar.
Copie imediatamente o valor do novo segredo para um local seguro. O valor total aparece apenas uma vez.
Adicionar permissões para a API do Service Bus
Se a sua aplicação for uma aplicação de consola, deve registar uma aplicação nativa e adicionar permissões de API ao conjunto de permissões necessárias para Microsoft.ServiceBus.
As aplicações nativas também necessitam de um URI de redirecionamento no Microsoft Entra ID, que serve como identificador. O URI não precisa de ser um destino de rede. Use https://servicebus.microsoft.com para este exemplo, porque o código de exemplo já usa esse URI.
Atribuição de funções do Azure através do portal do Azure
Atribuir um dos papéis do Service Bus ao principal de serviço da aplicação no âmbito desejado (entidade, namespace Service Bus, grupo de recursos ou subscrição Azure). Para obter os passos detalhados, veja o artigo Atribuir funções do Azure com o portal do Azure.
Depois de definires o papel e o seu âmbito, podes testar este comportamento com o exemplo no GitHub.
Autenticação do cliente Service Bus
Depois de registar a sua aplicação e conceder-lhe permissões para enviar/receber dados no Azure Service Bus, pode autenticar o seu cliente com a credencial secreta do cliente. Esta autenticação permite-lhe fazer pedidos contra o Azure Service Bus.
Para uma lista de cenários para os quais a aquisição de tokens é suportada, consulte a secção Cenários do repositório GitHub da Microsoft Authentication Library (MSAL) para .NET.
Ao utilizar a mais recente biblioteca Azure.Messaging.ServiceBus , pode autenticar ServiceBusClient com o ClientSecretCredential, que está definido na biblioteca Azure.Identity .
TokenCredential credential = new ClientSecretCredential("<tenant_id>", "<client_id>", "<client_secret>");
var client = new ServiceBusClient("<fully_qualified_namespace>", credential);
Se estiveres a usar os pacotes .NET mais antigos, vê os exemplos Azure RBAC para Service Bus no GitHub.
Conteúdo relacionado
Para saber mais sobre o Azure RBAC, consulte O que é o controle de acesso baseado em função do Azure (Azure RBAC)?.
Para aprender a atribuir e gerir atribuições de funções Azure usando Azure PowerShell, a CLI do Azure ou a API REST, veja estes artigos:
Para saber mais sobre as mensagens do Service Bus, consulte estes artigos: