Compartilhar via


Autorizar o acesso a filas usando a ID do Microsoft Entra

O Armazenamento do Microsoft Azure dá suporte ao uso do Microsoft Entra ID para autorizar solicitações de enfileiramento de dados. Com o Microsoft Entra ID, você pode usar o RBAC (controle de acesso baseado em função do Azure) do Azure para conceder permissões a uma entidade de segurança, que pode ser um usuário, grupo ou entidade de serviço de aplicativo. A entidade de segurança é autenticada pelo Microsoft Entra ID para retornar um token OAuth 2.0. Em seguida, o token pode ser usado para autorizar uma solicitação no serviço Fila.

A autorização com o Microsoft Entra ID fornece segurança superior e facilidade de uso em relação à autorização de chave compartilhada. A Microsoft recomenda usar a autorização do Microsoft Entra com aplicativos de fila quando possível para garantir o acesso com os privilégios mínimos necessários.

A autorização com a ID do Microsoft Entra está disponível para todas as contas de armazenamento de uso geral em todas as regiões públicas e nuvens nacionais. Somente as contas de armazenamento criadas com o Modelo de implantação do Azure Resource Manager são compatíveis com a autorização do Microsoft Entra.

Visão geral do Microsoft Entra ID para filas

Quando uma entidade de segurança (um usuário, grupo ou aplicativo) tenta acessar um recurso de fila, a solicitação deve ser autorizada, a menos que seja uma fila disponível para acesso anônimo. Com o Microsoft Entra ID, o acesso a um recurso é um processo de duas etapas:

  1. Primeiro, a identidade da entidade de segurança é autenticada e um token OAuth 2.0 é retornado.

    A etapa de autenticação requer que uma solicitação do aplicativo um token de acesso OAuth 2.0 no runtime. Se um aplicativo estiver em execução de dentro de uma entidade do Azure, como uma VM do Azure, um Conjunto de Dimensionamento de Máquinas Virtuais ou um aplicativo do Azure Functions, ele poderá usar uma identidade gerenciada para acessar dados da fila.

  2. Em seguida, o token é passado como parte de uma solicitação para o serviço Fila e usado pelo serviço para autorizar o acesso ao recurso especificado.

    A etapa de autorização requer que uma ou mais funções RBAC do Azure sejam atribuídas à entidade de segurança que faça a solicitação. Para obter mais informações, confira Atribuir funções do Azure para direitos de acesso.

Usar uma conta do Microsoft Entra com o portal, o PowerShell ou a CLI do Azure

Para saber mais sobre como acessar dados no portal do Azure com uma conta do Microsoft Entra, consulte o acesso a dados no portal do Azure. Para saber como chamar comandos do Azure PowerShell ou da CLI do Azure com uma conta do Microsoft Entra, consulte o acesso a dados do PowerShell ou da CLI do Azure.

Usar o Microsoft Entra ID para autorizar o acesso no código do aplicativo

Para autorizar o acesso ao Armazenamento do Microsoft Azure com o Microsoft Entra ID, você pode usar uma das seguintes bibliotecas de cliente para adquirir um token OAuth 2.0:

Biblioteca de clientes da Identidade do Azure

A biblioteca de clientes do Azure Identity simplifica o processo de obtenção de um token de acesso OAuth 2.0 para autorização com o Microsoft Entra ID por meio do SDK do Azure. As versões mais recentes das bibliotecas de cliente do Armazenamento do Microsoft Azure para .NET, Java, Python, JavaScript e Go se integram com as bibliotecas de Identidade do Azure para cada uma dessas linguagens para fornecer um meio simples e seguro de aquisição de um token de acesso para autorização de solicitações do Armazenamento do Microsoft Azure.

Uma vantagem da biblioteca de cliente de Identidade do Azure é que ela permite que você use o mesmo código para adquirir o token de acesso se seu aplicativo está em execução no ambiente de desenvolvimento ou no Azure. A biblioteca de clientes da Identidade do Azure retorna um token de acesso para uma entidade de segurança. Quando seu código está em execução no Azure, a entidade de segurança pode ser uma identidade gerenciada para recursos do Azure, uma entidade de serviço, um usuário ou grupo. No ambiente de desenvolvimento, a biblioteca de clientes fornece um token de acesso para um usuário ou para uma entidade de serviço para fins de teste.

O token de acesso retornado pela biblioteca de clientes da Identidade do Azure é encapsulado em uma credencial de token. Você pode, então, usar a credencial de token para obter um objeto de cliente do serviço a ser usado na execução de operações autorizadas no Armazenamento do Azure. Uma maneira simples de obter o token de acesso e a credencial de token é usar a classe DefaultAzureCredential fornecida pela biblioteca de clientes da Identidade do Azure. DefaultAzureCredential tenta obter a credencial de token, tentando sequencialmente vários tipos de credencial diferentes. DefaultAzureCredential funciona no ambiente de desenvolvimento e no Azure.

A tabela a seguir aponta informações adicionais para autorizar o acesso a dados em vários cenários:

Linguagem .NET Java JavaScript Python Go
Visão geral da autenticação com o Microsoft Entra ID Como autenticar aplicativos .NET com os serviços do Azure Autenticação do Azure com o Java e a Identidade do Azure Autenticar aplicativos JavaScript no Azure usando o SDK do Azure Autenticar aplicativos Python no Azure usando o SDK do Azure
Autenticação usando entidades de serviço de desenvolvedor Autenticar aplicativos .NET nos serviços do Azure durante o desenvolvimento local usando entidades de serviço Autenticação do Azure com entidade de serviço Autenticar aplicativos JS para os serviços do Azure com a entidade de serviço Autenticar aplicativos Python em serviços do Azure durante o desenvolvimento local utilizando entidades de serviço Autenticação do SDK do Azure para Go com uma entidade de serviço
Autenticar usando contas de desenvolvedor ou de usuário Autenticar aplicativos .NET nos serviços do Azure durante o desenvolvimento local usando contas de desenvolvedor Autenticação do Azure com credenciais de usuário Autenticar aplicativos JS para serviços do Azure com contas de desenvolvimento Autenticar aplicativos Python nos serviços do Azure durante o desenvolvimento local usando contas de desenvolvedor Autenticação do Azure com o SDK do Azure para Go
Autenticação de aplicativos hospedados no Azure Autenticar aplicativos hospedados no Azure para recursos do Azure com o SDK do Azure para .NET Autenticar aplicativos Java hospedados no Azure Autenticar aplicativos JavaScript hospedados no Azure para recursos do Azure com o SDK do Azure para JavaScript Autenticar aplicativos hospedados no Azure para recursos do Azure com o SDK do Azure para Python Autenticação com o SDK do Azure para Go usando uma identidade gerenciada
Autenticação de aplicativos locais Autentique-se nos recursos do Azure por aplicativos .NET hospedados no local Autenticar aplicativos JavaScript locais nos recursos do Azure Autenticar nos recursos do Azure de aplicativos Python hospedados localmente
Visão geral da biblioteca de clientes de identidade Biblioteca de clientes do Azure Identity para .NET Biblioteca de clientes da Identidade do Azure para Java Biblioteca de cliente da Identidade do Azure para JavaScript Biblioteca de clientes do Azure Identity para Python Biblioteca de clientes do Azure Identity para Go

MSAL (Biblioteca de Autenticação da Microsoft)

Embora a Microsoft recomende usar a biblioteca de cliente do Azure Identity quando possível, a biblioteca MSAL pode ser apropriada para usar em determinados cenários avançados. Para obter mais informações, consulte Saiba mais sobre a MSAL.

Ao usar a MSAL para adquirir um token OAuth para ter acesso ao Armazenamento do Microsoft Azure, você precisa fornecer uma ID do recurso do Microsoft Entra. A ID do recurso do Microsoft Entra indica o público-alvo para o qual um token emitido pode ser usado para fornecer acesso a um recurso do Azure. No caso do Armazenamento do Azure, a ID do recurso pode ser específica para uma conta de armazenamento ou pode ser aplicada a qualquer conta de armazenamento.

Quando você fornece uma ID do recurso específica para uma única conta de armazenamento e serviço, a ID do recurso é usada para adquirir um token para autorizar solicitações somente para a conta e o serviço especificados. A tabela a seguir lista o valor a ser usado para a ID do recurso, com base na nuvem com a qual você está trabalhando. Substitua <account-name> com o nome da sua conta de armazenamento.

Nuvem ID de Recurso
Azure Global https://<account-name>.queue.core.windows.net
Azure Governamental https://<account-name>.queue.core.usgovcloudapi.net
Azure China 21Vianet https://<account-name>.queue.core.chinacloudapi.cn

Você também pode fornecer uma ID de recurso que se aplique a qualquer conta de armazenamento, conforme mostrado na tabela a seguir. Essa ID de recurso é a mesma para todas as nuvens públicas e soberanas e é usada para adquirir um token para autorizar solicitações a qualquer conta de armazenamento.

Nuvem ID de Recurso
Azure Global
Azure Governamental
Azure China 21Vianet
https://storage.azure.com/

Atribuir funções do Azure para direitos de acesso

O Microsoft Entra autoriza direitos de acesso a recursos protegidos por meio do RBAC do Azure. O Armazenamento do Azure define um conjunto de funções RBAC internas que abrangem conjuntos comuns de permissões usadas para acessar dados de fila. Você também pode definir funções personalizadas para acesso aos dados da fila. Para saber mais sobre como atribuir funções do Azure para acesso à fila, consulte Atribuir uma função do Azure para acesso aos dados da fila.

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. As funções RBAC atribuídas a uma entidade de segurança determinam as permissões que a entidade terá. Para saber mais sobre como atribuir funções do Azure para acesso à fila, consulte Atribuir uma função do Azure para acesso aos dados da fila

Em alguns casos, talvez seja necessário habilitar o acesso refinado aos recursos de fila ou simplificar as permissões quando você tiver um grande número de atribuições de função para um recurso de armazenamento. Você pode usar o Azure RBAC (controle de acesso baseado em função) para configurar as condições nas atribuições de função. Você pode usar condições com uma função personalizada ou selecionar funções internas. Para obter mais informações sobre como configurar condições para recursos de armazenamento do Azure com ABAC, consulte Autorizar o acesso a filas usando condições de atribuição de função do Azure. Para obter detalhes sobre as condições com suporte para operações de dados de fila, confira Ações e atributos para condições de atribuição de função do Azure para filas do Azure.

Observação

Ao criar uma conta de Armazenamento do Azure, você não receberá permissões de acesso de dados automaticamente por meio do Microsoft Entra ID. Você deve atribuir explicitamente a si mesmo uma função do Azure para acessar o Armazenamento de Filas. Você pode atribuí-la no nível de assinatura, de grupo de recursos, da conta de armazenamento ou da fila.

Escopo do recurso

Antes de atribuir uma função RBAC do Azure a uma entidade de segurança, determine o escopo do acesso que essa entidade de segurança deve ter. De acordo com as melhores práticas, sempre é melhor conceder o escopo mais estreito possível. As funções RBAC do Azure definidas em um escopo mais amplo são herdadas pelos recursos abaixo delas.

Você pode definir o escopo do acesso aos recursos da fila do Azure nos seguintes níveis, começando com o escopo mais estreito:

  • Uma fila individual. Nesse escopo, uma atribuição de função se aplica a mensagens na fila e a propriedades e metadados da fila.
  • A conta de armazenamento. Nesse escopo, uma atribuição de função se aplica a todas as filas e suas mensagens.
  • O grupo de recursos. Nesse escopo, uma atribuição de função se aplica a todas as filas em todas as contas de armazenamento do grupo de recursos.
  • A assinatura. Nesse escopo, uma atribuição de função se aplica a todas as filas em todas as contas de armazenamento de todos os grupos de recursos da assinatura.
  • Um grupo de gerenciamento. Nesse escopo, uma atribuição de função se aplica a todas as filas em todas as contas de armazenamento de todos os grupos de recursos em todas as assinaturas do grupo de gerenciamento.

Para obter mais informações sobre o escopo das atribuições de função RBAC do Azure, confira Entender o escopo do RBAC do Azure.

Funções internas do Azure para filas

O RBAC do Azure fornece várias funções internas para autorizar o acesso a dados de fila usando a ID do Microsoft Entra e o OAuth. Alguns exemplos de funções que fornecem permissões para recursos de dados no Armazenamento do Microsoft Azure incluem:

Para saber como atribuir uma função predefinida do Azure a uma entidade de segurança, consulte Atribuir uma função do Azure para acesso aos dados de fila. Para saber como listar as funções rbac do Azure e suas permissões, consulte Listar definições de função do Azure.

Para obter mais informações sobre como as funções internas são definidas para o Armazenamento do Azure, consulte Noções básicas sobre definições de função. Para obter informações sobre como criar funções personalizadas do Azure, consulte as funções personalizadas do Azure.

Somente as funções explicitamente definidas para acesso a dados permitem que uma entidade de segurança acesse dados de fila. Funções internas, como Proprietário, Colaborador e Colaborador de conta de armazenamento permitem que uma entidade de segurança gerencie uma conta de armazenamento, mas não fornecem acesso aos dados de fila nessa conta por meio do Microsoft Entra ID. No entanto, se uma função incluir Microsoft.Storage/storageAccounts/listKeys/action, um usuário ao qual essa função é atribuída poderá acessar dados na conta de armazenamento por meio da autorização de Chave Compartilhada com as chaves de acesso da conta. Para obter mais informações, confira Escolher como autorizar o acesso a dados de fila no portal do Azure.

Para obter informações detalhadas sobre as funções internas do Azure para o Armazenamento do Azure, tanto para os serviços de dados quanto para o serviço de gerenciamento, consulte a seção Armazenamento em Funções internas do Azure para o RBAC do Azure. Além disso, para obter informações sobre os diferentes tipos de funções que fornecem permissões no Azure, consulte funções do Azure, funções do Microsoft Entra e funções de administrador de assinatura clássicas.

Importante

As atribuições de função do Azure podem levar até 30 minutos para serem propagadas.

Permissões de acesso para operações de dados

Para obter detalhes sobre as permissões necessárias para chamar operações do serviço de Fila específicas, consulte Permissões para chamar operações de dados.

Acessar dados com uma conta do Microsoft Entra

O acesso aos dados da fila por meio do portal do Azure, do PowerShell ou da CLI do Azure pode ser autorizado usando a conta do Microsoft Entra do usuário ou usando as chaves de acesso da conta (autorização de Chave Compartilhada).

Cuidado

A autorização com Chave Compartilhada não é recomendada, pois pode ser menos segura. Para uma segurança ideal, desabilite a autorização por meio da Chave Compartilhada para sua conta de armazenamento, conforme descrito em Impedir autorização de chave compartilhada para uma conta de Armazenamento do Azure.

O uso de chaves de acesso e cadeias de conexão deve ser limitado à prova inicial de aplicativos conceituais ou protótipos de desenvolvimento que não acessam dados confidenciais ou de produção. Caso contrário, as classes de autenticação baseadas em token disponíveis no SDK do Azure devem sempre ser preferidas ao autenticar recursos do Azure.

A Microsoft recomenda que os clientes usem o Microsoft Entra ID ou uma assinatura de acesso compartilhado (SAS) para autorizar o acesso aos dados no Armazenamento do Microsoft Azure. Para obter mais informações, consulte Autorizar operações para acesso a dados.

Acesso aos dados no portal do Azure

O portal do Azure pode usar sua conta do Microsoft Entra ou as chaves de acesso da conta para acessar dados de fila em uma conta de armazenamento do Azure. O esquema de autorização que o portal do Azure usa depende das funções do Azure atribuídas a você.

Quando você tenta acessar os dados da fila, o portal do Azure verifica primeiro se você recebeu uma função do Azure com Microsoft.Storage/storageAccounts/listkeys/action. Se você tiver recebido uma função com essa ação, o portal do Azure usará a chave da conta para acessar dados da fila por meio da autorização de Chave Compartilhada. Se uma função com essa ação não foi atribuída a você, o portal do Azure tentará acessar os dados usando a sua conta do Microsoft Entra.

Para acessar dados de fila do portal do Azure usando sua conta do Microsoft Entra, você precisa de permissões para acessar dados da fila e também precisa de permissões para navegar pelos recursos da conta de armazenamento no portal do Azure. As funções internas fornecidas pelo Azure Storage concedem acesso aos recursos de fila, mas não concedem permissões aos recursos da conta de armazenamento. Por esse motivo, o acesso ao portal também requer a atribuição de uma função do Azure Resource Manager, como a função Leitor , com escopo para o nível da conta de armazenamento ou superior. A função Leitor concede as permissões mais restritas, mas outra função do Azure Resource Manager que concede acesso aos recursos de gerenciamento de conta de armazenamento também é aceitável. Para saber mais sobre como atribuir permissões aos usuários para acesso a dados no portal do Azure com uma conta do Microsoft Entra, consulte Atribuir uma função do Azure para acesso aos dados da fila.

O portal do Azure indica qual esquema de autorização está em uso quando você navega para uma fila. Para obter mais informações sobre o acesso a dados no portal, consulte Escolher como autorizar o acesso aos dados da fila no portal do Azure.

Acesso a dados do PowerShell ou da CLI do Azure

A CLI do Azure e o PowerShell dão suporte à entrada com as credenciais do Microsoft Entra. Depois de entrar, sua sessão é executada sob essas credenciais. Para saber mais, confira um dos seguintes artigos:

Próximas etapas