Compartilhar via


Autenticar aplicativos Java 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. Este artigo descreve 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, seja ele 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 possam acessá-lo, 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 Azure acesso a recursos apenas às permissões específicas necessárias pelo aplicativo. Essa abordagem segue o princípio do privilégio mínimo. Por outro lado, um connection string concede direitos completos ao recurso Azure.
  • Quando você usa uma identidade gerenciada para autenticação baseada em token, o Azure gerencia funções administrativas para você, portanto, você não precisa se preocupar com tarefas como proteger ou rotacionar segredos. Essa abordagem torna o aplicativo mais seguro porque não há connection string ou segredo do aplicativo que possa ser comprometido.
  • A biblioteca Azure Identity adquire e gerencia tokens de Microsoft Entra para você.

Limite o uso de cadeias de conexão 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 você hospeda seu aplicativo no Azure, ele pode usar identidades gerenciadas para se autenticar em Azure recursos sem a necessidade de gerenciar credenciais. Dois tipos de identidades gerenciadas estão disponíveis: atribuídos pelo usuário e atribuídos pelo sistema.

Usar uma identidade gerenciada atribuída pelo usuário

Você pode criar uma identidade gerenciada atribuída pelo usuário como um recurso de Azure autônomo. Em seguida, você pode atribuí-lo a uma ou mais Azure recursos para que esses recursos possam compartilhar 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 sua ID do cliente, ID do recurso ou ID do objeto.

Usar uma identidade gerenciada atribuída pelo sistema

Você pode habilitar uma identidade gerenciada atribuída pelo sistema 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 no recurso 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 aos recursos do Azure usando suas credenciais de desenvolvedor, um broker ou um service principal. Usando um desses métodos, você pode testar a lógica de autenticação do aplicativo sem implantá-la em Azure.

Usar credenciais de desenvolvedor

Você pode usar suas próprias credenciais de Azure para autenticar para Azure recursos durante o desenvolvimento local. Normalmente, você usa uma ferramenta de desenvolvimento, como Azure CLI, Azure CLI do Desenvolvedor, Azure PowerShell, Visual Studio Code ou IntelliJ IDEA. Essas ferramentas podem fornecer ao aplicativo os tokens necessários para acessar Azure serviços. Esse método é conveniente, mas você deve usá-lo apenas 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

Você pode criar uma entidade de serviço em um locatário do Microsoft Entra para representar um aplicativo e autenticar-se em 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 se autentica 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.