Nota
O acesso a esta página requer autorização. Podes tentar iniciar sessão ou mudar de diretório.
O acesso a esta página requer autorização. Podes tentar mudar de diretório.
A abordagem recomendada para autenticar um aplicativo hospedado no Azure em outros recursos do Azure é usar uma identidade gerenciada . Essa abordagem é suportada para a maioria dos serviços do Azure, incluindo aplicativos hospedados no Serviço de Aplicativo do Azure, Aplicativos de Contêiner do Azure e Máquinas Virtuais do Azure. Descubra mais sobre diferentes técnicas e abordagens de autenticação na página visão geral da autenticação. Nas seções a seguir, você aprenderá:
- Conceitos essenciais de identidade gerenciada
- Como criar uma identidade gerenciada atribuída pelo usuário para seu aplicativo
- Como atribuir funções à identidade gerenciada atribuída pelo usuário
- Como autenticar usando a identidade gerenciada atribuída pelo usuário a partir do código do seu aplicativo
Conceitos essenciais de identidade gerenciada
Uma identidade gerenciada permite que seu aplicativo se conecte com segurança a outros recursos do Azure sem o uso de chaves secretas ou outros segredos de aplicativo. Internamente, o Azure rastreia a identidade e os recursos aos quais ele pode se conectar. O Azure usa essas informações para obter automaticamente tokens do Microsoft Entra para o aplicativo para permitir que ele se conecte a outros recursos do Azure.
Há dois tipos de identidades gerenciadas a serem consideradas ao configurar seu aplicativo hospedado:
- identidades gerenciadas atribuídas pelo sistema são habilitadas diretamente em um recurso do Azure e vinculadas ao seu ciclo de vida. Quando o recurso é excluído, o Azure exclui automaticamente a identidade para você. As identidades atribuídas pelo sistema fornecem uma abordagem minimalista para o uso de identidades gerenciadas.
- identidades gerenciadas atribuídas pelo usuário são criadas como recursos autônomos do Azure e oferecem maior flexibilidade e recursos. Eles são ideais para soluções que envolvem vários recursos do Azure que precisam compartilhar a mesma identidade e permissões. Por exemplo, se várias máquinas virtuais precisarem acessar o mesmo conjunto de recursos do Azure, uma identidade gerenciada atribuída pelo usuário fornecerá reutilização e gerenciamento otimizado.
Sugestão
Saiba mais sobre como selecionar e gerenciar identidades gerenciadas atribuídas pelo sistema e pelo usuário no artigo Recomendações de práticas recomendadas de identidade gerenciada .
As seções à frente descrevem as etapas para habilitar e usar uma identidade gerenciada atribuída pelo usuário para um aplicativo hospedado no Azure. Se você precisar usar uma identidade gerenciada atribuída pelo sistema, visite o artigo Identidades gerenciadas atribuídas pelo sistema para obter mais informações.
Criar uma identidade gerenciada atribuída pelo usuário
As identidades gerenciadas atribuídas pelo usuário são criadas como recursos autônomos em sua assinatura do Azure usando o portal do Azure ou a CLI do Azure. Os comandos da CLI do Azure podem ser executados no Azure Cloud Shell ou em uma estação de trabalho com a CLI do Azure instalada.
- portal do Azure
- Azure CLI
No portal do Azure, insira Identidades geridas na barra de pesquisa principal e selecione o resultado correspondente na seção Serviços.
Na página Identidades Gerenciadas, selecione + Criar.
Na página Criar Identidade Gerida Atribuída ao Utilizador, selecione uma subscrição, um grupo de recursos e uma região para a identidade gerida atribuída ao utilizador, e forneça um nome.
Selecione Rever + criar para rever e validar as suas entradas.
Selecione Criar para criar a identidade gerenciada atribuída pelo usuário.
Depois que a identidade for criada, selecione Ir para o recurso.
Na página Visão Geral da nova identidade, copie o valor ID do Cliente para utilizar mais tarde, ao configurar o código da aplicação.
Atribuir a identidade gerenciada ao seu aplicativo
Uma identidade gerenciada atribuída pelo usuário pode ser associada a um ou mais recursos do Azure. Todos os recursos que usam essa identidade obtêm as permissões aplicadas por meio das funções da identidade.
- portal do Azure
- Azure CLI
No portal do Azure, navegue até o recurso que hospeda o código do seu aplicativo, como um Serviço de Aplicativo do Azure ou uma instância do Aplicativo de Contêiner do Azure.
Na página Visão Geral do recurso, expanda Configurações e selecione Identidade na navegação.
Na página Identidade, alterne para o separador Atribuído ao usuário.
Selecione + Adicionar para abrir o painel Adicionar identidade gerenciada atribuída ao usuário.
No painel Adicionar identidade gerenciada atribuída ao utilizador, use a lista suspensa Assinatura para filtrar os resultados da pesquisa para as suas identidades. Utilize a caixa de pesquisa identidades gerenciadas atribuídas ao usuário para localizar a identidade gerenciada atribuída ao utilizador que você habilitou para o recurso do Azure que hospeda a sua aplicação.
Selecione a identidade e escolha Adicionar na parte inferior do painel para continuar.
Atribuir funções à identidade gerenciada
Em seguida, determine quais funções seu aplicativo precisa e atribua essas funções à identidade gerenciada. Você pode atribuir funções a uma identidade gerenciada nos seguintes escopos:
- Resource: As funções atribuídas aplicam-se apenas a esse recurso específico.
- Grupo de recursos: As funções atribuídas aplicam-se a todos os recursos contidos no grupo de recursos.
- Subscrição: As funções atribuídas aplicam-se a todos os recursos contidos na subscrição.
O exemplo a seguir mostra como atribuir funções no escopo do grupo de recursos, já que muitos aplicativos gerenciam todos os seus recursos relacionados do Azure usando um único grupo de recursos.
- portal do Azure
- Azure CLI
Navegue para a página Visão Geral do grupo de recursos que contém o aplicativo com a identidade gerida atribuída pelo utilizador.
Selecione Controle de Acesso (IAM) na barra de navegação à esquerda.
Na página Controlo de acesso (IAM), selecione + Adicionar no menu superior e, em seguida, escolha Adicionar atribuição de função para navegar até a página Adicionar atribuição de função.
A página Adicionar atribuição de função apresenta um fluxo de trabalho com guias em várias etapas para atribuir funções a identidades. No separador inicial Função, utiliza a caixa de pesquisa na parte superior para localizar a função que deseja atribuir à identidade.
Selecione a função nos resultados e, em seguida, escolha Avançar para ir para o separador Membros.
Para a opção Atribuir acesso a, selecione Identidade gerenciada.
Para a opção Membros, escolha + Selecionar membros para abrir o painel Selecionar identidades gerenciadas.
No painel Selecionar identidades geridas, use a lista suspensa Assinatura e a lista suspensa Identidade gerida para filtrar as suas identidades nos resultados da pesquisa. Use a caixa de pesquisa Selecionar para encontrar a identidade gerida atribuída ao utilizador que você ativou para o recurso do Azure que hospeda a sua aplicação.
Selecione a identidade e escolha Selecionar na parte inferior do painel para continuar.
Selecione Revisão + Atribua na parte inferior da página.
Na aba final Revisão + atribuir, selecione Revisão + atribuir para concluir o fluxo de trabalho.
Autenticar nos serviços do Azure a partir da sua aplicação
A biblioteca de Identidade do Azure fornece várias credenciais — implementações adaptadas para suportar diferentes cenários e fluxos de autenticação do TokenCredential Microsoft Entra. Como a identidade gerenciada não está disponível ao ser executada localmente, as etapas à frente demonstram qual credencial usar em qual cenário:
-
Ambiente de desenvolvimento local: Durante desenvolvimento local somente, use uma classe chamada DefaultAzureCredential para uma cadeia de credenciais opinativa e pré-configurada.
DefaultAzureCredentialdescobre credenciais de usuário de suas ferramentas locais ou IDE, como a CLI do Azure ou o Visual Studio Code. Ele também oferece flexibilidade e conveniência para tentativas, tempos de espera para respostas e suporte para várias opções de autenticação. Visite o artigo Autenticar nos serviços do Azure durante o desenvolvimento local para saber mais. - Aplicativos hospedados no Azure: quando seu aplicativo estiver sendo executado no Azure, use ManagedIdentityCredential para descobrir com segurança a identidade gerenciada configurada para seu aplicativo. Especificar esse tipo exato de credencial evita que outras credenciais disponíveis sejam coletadas inesperadamente.
Implementar o código
Adicione o pacote Azure-identity à sua aplicação navegando até ao diretório do projeto da aplicação e executando o seguinte comando:
pip install azure-identity
Os serviços do Azure são acessados usando classes de cliente especializadas das várias bibliotecas de cliente do SDK do Azure. O exemplo de código seguinte demonstra como criar uma instância de credencial e usá-la com um cliente de serviço Azure SDK. No código da sua aplicação, complete os seguintes passos para autenticar usando uma identidade gerida:
- Importe a
ManagedIdentityCredentialclasse doazure.identitymódulo. - Crie um
ManagedIdentityCredentialobjeto e configure o ID do cliente, ID do recurso ou ID do objeto. - Passe o
ManagedIdentityCredentialobjeto para o construtor cliente do Azure SDK.
O ID do cliente é usado para identificar uma identidade gerenciada ao configurar aplicativos ou serviços que precisam ser autenticados usando essa identidade.
Recupere o ID do cliente atribuído a uma identidade gerenciada atribuída pelo usuário usando o seguinte comando:
az identity show \ --resource-group <resource-group-name> \ --name <identity-name> \ --query 'clientId'Configure
ManagedIdentityCredentialcom a ID de cliente:from azure.identity import ManagedIdentityCredential from azure.storage.blob import BlobServiceClient credential = ManagedIdentityCredential( client_id="<client-id>" ) blob_service_client = BlobServiceClient( account_url="https://<account-name>.blob.core.windows.net", credential=credential )