Compartilhar via


Autenticar aplicativos Python para Azure serviços usando a biblioteca de identidade Azure

Os aplicativos podem usar a biblioteca Azure Identity para se autenticar no Microsoft Entra ID, o que permite que os aplicativos acessem Azure serviços e recursos. Esse requisito de autenticação se aplica se o aplicativo é implantado para Azure, hospedado localmente ou em execução localmente em uma estação de trabalho do desenvolvedor. As seções a seguir descrevem as abordagens recomendadas para autenticar um aplicativo para Microsoft Entra ID em ambientes diferentes ao usar as bibliotecas de cliente Azure SDK.

A autenticação baseada em token por meio de Microsoft Entra ID é a abordagem recomendada para autenticar aplicativos para Azure, em vez de usar cadeias de conexão ou opções baseadas em chave. A biblioteca Azure Identity fornece classes que dão suporte à autenticação baseada em token e permitem que os aplicativos se autentiquem para Azure recursos, independentemente de o aplicativo ser executado localmente, em Azure ou em um servidor local.

Vantagens da autenticação baseada em token

A autenticação baseada em token oferece as seguintes vantagens em relação às cadeias de conexão:

  • A autenticação baseada em token garante que apenas os aplicativos específicos destinados a acessar o recurso Azure sejam capazes de fazer isso, enquanto qualquer pessoa ou qualquer aplicativo com um connection string pode se conectar a um recurso Azure.
  • A autenticação baseada em token permite limitar ainda mais o acesso a recursos do Azure apenas às permissões específicas necessárias para o aplicativo. Isso segue o princípio de privilégios mínimos. Por outro lado, um connection string concede direitos completos ao recurso Azure.
  • Ao usar uma identidade gerenciada para autenticação baseada em token, o Azure lida com funções administrativas para você, então você não precisa se preocupar com tarefas como proteger ou fazer a rotação de segredos. Isso torna o aplicativo mais seguro porque não há nenhuma cadeia de conexão ou segredo de aplicativo que possa ser comprometido.
  • A biblioteca Azure Identity adquire e gerencia tokens de Microsoft Entra para você.

O uso de cadeias de conexão deve ser limitado a cenários em que a autenticação baseada em token não é uma opção, aplicativos de prova de conceito iniciais ou protótipos de desenvolvimento que não acessam dados confidenciais ou de produção. Quando possível, use as classes de autenticação baseadas em token disponíveis na biblioteca de identidade do Azure para autenticar os recursos do Azure.

Autenticação em diferentes ambientes

O tipo específico de autenticação baseada em token que um aplicativo deve usar para autenticar para Azure recursos depende de onde o aplicativo é executado. O diagrama a seguir fornece diretrizes para diferentes cenários e ambientes:

Um diagrama mostrando as estratégias de autenticação baseadas em token recomendadas para um aplicativo, dependendo de onde ele está sendo executado.

Quando um aplicativo é:

Autenticação para aplicativos hospedados Azure

Quando seu aplicativo está hospedado no Azure, ele pode usar identidades gerenciadas para autenticar para Azure recursos sem a necessidade de gerenciar credenciais. Há dois tipos de identidades gerenciadas: atribuídas pelo usuário e atribuídas pelo sistema.

Usar uma identidade gerenciada atribuída pelo usuário

Uma identidade gerenciada atribuída pelo usuário é criada como um recurso de Azure autônomo. Ele pode ser atribuído a uma ou mais Azure recursos, permitindo que esses recursos compartilhem a mesma identidade e permissões. Para autenticar usando uma identidade gerenciada atribuída pelo usuário, crie a identidade, atribua-a ao recurso Azure e configure seu aplicativo para usar essa identidade para autenticação especificando a ID do cliente, a ID do recurso ou a ID do objeto.

Usar uma identidade gerenciada atribuída pelo sistema

Uma identidade gerenciada atribuída pelo sistema é habilitada diretamente em um recurso de Azure. A identidade está vinculada ao ciclo de vida desse recurso e é excluída automaticamente quando o recurso é excluído. Para autenticar usando uma identidade gerenciada atribuída pelo sistema, habilite a identidade em seu recurso de Azure e configure seu aplicativo para usar essa identidade para autenticação.

Autenticação durante o desenvolvimento local

Durante o desenvolvimento local, você pode autenticar em recursos do Azure usando suas credenciais de desenvolvedor ou um principal de serviço. Isso permite que você teste a lógica de autenticação do aplicativo sem implantá-la no Azure.

Usar credenciais de desenvolvedor

Você pode usar suas próprias credenciais de Azure para autenticar para Azure recursos durante o desenvolvimento local. Normalmente, isso é feito usando uma ferramenta de desenvolvimento, como Azure CLI ou Visual Studio Code, que pode fornecer ao seu aplicativo os tokens necessários para acessar Azure serviços. Esse método é conveniente, mas só deve ser usado para fins de desenvolvimento.

Usar um agente

A autenticação agenciada coleta credenciais do usuário usando o agente de autenticação do sistema para autenticar um aplicativo. Um agente de autenticação do sistema é executado no computador de um usuário e gerencia os handshakes de autenticação e a manutenção de token para todas as contas conectadas.

Usar uma entidade de serviço

Uma entidade de serviço é criada em um locatário do Microsoft Entra para representar um aplicativo e ser usada para autenticar recursos do Azure. Você pode configurar o seu aplicativo para utilizar as credenciais da entidade de serviço durante o desenvolvimento local. Esse método é mais seguro do que usar credenciais de desenvolvedor e está mais próximo de como seu aplicativo será autenticado em produção. No entanto, ainda é menos ideal do que usar uma identidade gerenciada devido à necessidade de segredos.

Autenticação para aplicativos hospedados localmente

Para aplicativos hospedados localmente, você pode usar um principal de serviço para autenticar recursos do Azure. Isso envolve a criação de uma entidade de serviço no Microsoft Entra ID, atribuindo as permissões necessárias e configurando o aplicativo para usar suas credenciais. Esse método permite que seu aplicativo local acesse com segurança Azure serviços.