Autorizar o acesso a tabelas usando o Microsoft Entra ID

O Armazenamento do Azure suporta a utilização do Microsoft Entra ID para autorizar pedidos de dados de tabela. 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, 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. O token pode ser usado para autorizar uma solicitação no serviço Tabela.

A autorização de solicitações no Armazenamento do Azure com a ID do Microsoft Entra oferece segurança superior e facilidade de uso em relação à autorização de Chave Compartilhada. A Microsoft recomenda o uso da autorização do Microsoft Entra com seus aplicativos de tabela quando possível para garantir o acesso com privilégios mínimos necessários.

A autorização com o Microsoft Entra ID está disponível para todos os fins gerais em todas as regiões públicas e nuvens nacionais. Apenas as contas de armazenamento criadas com o modelo de implementação do Azure Resource Manager suportam a autorização do Microsoft Entra.

Visão geral do Microsoft Entra ID para tabelas

Quando uma entidade de segurança (um usuário, grupo ou aplicativo) tenta acessar um recurso de tabela, a solicitação deve ser autorizada. Com o Microsoft Entra ID, o acesso a um recurso é um processo de duas etapas. Primeiro, a identidade da entidade de segurança é autenticada e um token OAuth 2.0 é retornado. Em seguida, o token é passado como parte de uma solicitação para o serviço Tabela e usado pelo serviço para autorizar o acesso ao recurso especificado.

A etapa de autenticação requer que um aplicativo solicite um token de acesso OAuth 2.0 em tempo de execução. Se um aplicativo estiver sendo executado de dentro de uma entidade do Azure, como uma VM do Azure, um conjunto de dimensionamento de máquina virtual ou um aplicativo do Azure Functions, ele poderá usar uma identidade gerenciada para acessar tabelas.

A etapa de autorização requer que uma ou mais funções do Azure sejam atribuídas à entidade de segurança. O Armazenamento do Azure fornece funções do Azure que abrangem conjuntos comuns de permissões para dados de tabela. As funções atribuídas a uma entidade de segurança determinam as permissões que essa entidade terá. Para saber mais sobre como atribuir funções do Azure para acesso à tabela, consulte Atribuir uma função do Azure para acesso a dados de tabela.

A tabela a seguir aponta para 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 Java e Azure Identity 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 do 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 Transferir aplicativos JS para serviços do Azure com entidade de serviço Autenticar aplicativos Python nos serviços do Azure durante o desenvolvimento local usando entidades de serviço Autenticação do SDK do Azure para Go com uma entidade de serviço
Auth usando contas de desenvolvedor ou 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 Transferir 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 Autenticando aplicativos hospedados no Azure em recursos do Azure com o SDK do Azure para .NET Autenticar aplicativos Java hospedados no Azure Autenticando aplicativos JavaScript hospedados no Azure em recursos do Azure com o SDK do Azure para JavaScript Autenticando aplicativos hospedados no Azure em 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 a partir de aplicações locais Autenticar recursos do Azure a partir de aplicativos .NET hospedados no local Autenticar aplicativos JavaScript locais em recursos do Azure Autenticar recursos do Azure a partir de aplicativos Python hospedados no local
Visão geral da biblioteca de cliente de identidade Biblioteca de cliente do Azure Identity para .NET Biblioteca de cliente do Azure Identity para Java Biblioteca de cliente do Azure Identity para JavaScript Biblioteca de cliente do Azure Identity para Python Biblioteca de cliente do Azure Identity para Go

Atribuir funções do Azure para direitos de acesso

O Microsoft Entra autoriza direitos de acesso a recursos protegidos por meio do controle de acesso baseado em função do Azure (Azure RBAC). O Armazenamento do Azure define um conjunto de funções internas do Azure que englobam conjuntos comuns de permissões usadas para acessar dados de tabela. Você também pode definir funções personalizadas para acesso aos dados da tabela.

Quando uma função do Azure é atribuída a uma entidade de segurança do Microsoft Entra, o Azure concede acesso a esses recursos para essa entidade de segurança. 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.

Âmbito do recurso

Antes de atribuir uma função RBAC 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. As funções do RBAC do Azure definidas em um escopo mais amplo são herdadas pelos recursos abaixo delas.

Você pode definir o escopo de acesso aos recursos de tabela do Azure nos seguintes níveis, começando com o escopo mais restrito:

  • Uma mesa individual. Neste escopo, uma atribuição de função se aplica à tabela especificada.
  • A conta de armazenamento. Neste âmbito, uma atribuição de função aplica-se a todas as tabelas da conta.
  • o grupo de recursos. Neste escopo, uma atribuição de função se aplica a todas as tabelas em todas as contas de armazenamento no grupo de recursos.
  • A assinatura. Neste escopo, uma atribuição de função se aplica a todas as tabelas em todas as contas de armazenamento em todos os grupos de recursos na assinatura.
  • Um grupo de gestão. Neste escopo, uma atribuição de função se aplica a todas as tabelas em todas as contas de armazenamento em todos os grupos de recursos em todas as assinaturas no grupo de gerenciamento.

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

Funções internas do Azure para tabelas

O RBAC do Azure fornece funções internas para autorizar o acesso a dados de tabela usando o Microsoft Entra ID e OAuth. As funções internas que fornecem permissões para tabelas no Armazenamento do Azure incluem:

Para saber como atribuir uma função interna do Azure a uma entidade de segurança, consulte Atribuir uma função do Azure para acesso aos dados da tabela. Para saber como listar funções do 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 Compreender as definições de função. Para obter informações sobre como criar funções personalizadas do Azure, consulte Funções personalizadas do Azure.

Somente funções explicitamente definidas para acesso a dados permitem que uma entidade de segurança acesse os dados da tabela. As funções internas, como Proprietário, Colaborador e Colaborador da Conta de Armazenamento, permitem que uma entidade de segurança gerencie uma conta de armazenamento, mas não fornecem acesso aos dados da tabela dentro dessa conta por meio da ID do Microsoft Entra. 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 informações detalhadas sobre as funções internas do Azure para o Armazenamento do Azure para os serviços de dados e o serviço de gerenciamento, consulte a seção Armazenamento em Funções internas do Azure para o Azure RBAC. 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 se propagar.

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

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

Próximos passos