Autenticação do Azure com Java e Identidade do Azure
Este artigo fornece uma visão geral da biblioteca de Identidade do Java para Azure, que oferece suporte à autenticação de token do Microsoft Entra no SDK do Azure para Java. Essa biblioteca oferece um conjunto de implementações de TokenCredential
que você pode usar para criar clientes do SDK do Azure que suportam a autenticação de token do Microsoft Entra.
No momento, a biblioteca de Identidade do Azure dá suporte a:
- Autenticação do Azure em ambientes de desenvolvimento Java, que habilita:
- Autenticação do IDEIA IntelliJ, com as informações de entrada recuperadas do Azure Toolkit for IntelliJ.
- Autenticação do Visual Studio Code, com as informações de entrada salvas no plug-in do Azure para Visual Studio Code.
- Autenticação da CLI do Azure, com as informações de entrada salvas na CLI do Azure
- Autenticação de aplicativos hospedados no Azure, que habilita:
- Autenticação de credencial do Azure padrão
- Autenticação de identidade gerenciada
- Autenticação com entidades de serviço, que habilita:
- Autenticação de segredo do cliente
- Autenticação de certificado do cliente
- Autenticação com as credenciais do usuário, que habilita:
- Autenticação interativa do navegador
- Autenticação de código de dispositivo
- Autenticação de nome de usuário e senha
Siga esses links para saber mais sobre as especificidades de cada uma dessas abordagens de autenticação. No restante deste artigo, apresentaremos o DefaultAzureCredential
comumente usado e assuntos relacionados.
Adicionar as dependências do Maven
Para adicionar a dependência do Maven, inclua o XML a seguir no arquivo pom.xml do projeto. Substitua {version_number}
pelo número de versão da versão estável mais recente, conforme mostrado na página da biblioteca de Identidades do Azure.
<dependency>
<groupId>com.azure</groupId>
<artifactId>azure-identity</artifactId>
<version>{version_number}</version>
</dependency>
Conceitos principais
Há dois conceitos principais para entender a biblioteca de identidades do Azure: o conceito de uma credencial e a implementação mais comum dessa credencial, DefaultAzureCredential
.
Uma credencial é uma classe que contém ou pode obter os dados necessários para um cliente de serviço autenticar solicitações. Os clientes de serviço no SDK do Azure aceitam credenciais quando são construídos e os clientes de serviço usam essas credenciais para autenticar solicitações para o serviço.
A biblioteca de Identidade do Azure se concentra na autenticação OAuth com a ID do Microsoft Entra e oferece várias classes de credenciais que podem adquirir um token do Microsoft Entra para autenticar solicitações de serviço. Todas as classes de credencial nesta biblioteca são implementações da classe abstrata TokenCredential
na azure-core, e você pode usar qualquer uma delas para construir clientes de serviço que podem se autenticar com uma TokenCredential
.
DefaultAzureCredential
é apropriado para a maioria dos cenários em que o aplicativo se destina, em última instância, a ser executado na nuvem do Azure. A DefaultAzureCredential
combina as credenciais comumente usadas para autenticação quando implantadas com credenciais usadas para autenticar em um ambiente de desenvolvimento. Para obter mais informações, incluindo exemplos usando DefaultAzureCredential
, confira a seção Credencial do Azure padrão de Como autenticar aplicativos Java hospedados no Azure.
Exemplos
Conforme observado em Usar o SDK do Azure para Java, as bibliotecas de gerenciamento diferem ligeiramente. Uma das maneiras como elas diferem é que há bibliotecas para consumir serviços do Azure, chamadas bibliotecas de clientes, e bibliotecas para gerenciar serviços do Azure, chamadas de bibliotecas de gerenciamento. Nas seções a seguir, há uma rápida visão geral da autenticação nas bibliotecas de clientes e de gerenciamento.
Autenticar bibliotecas de clientes do Azure
O exemplo a seguir demonstra como autenticar SecretClient
da biblioteca de cliente azure-security-keyvault-secrets usando DefaultAzureCredential
.
// Azure SDK client builders accept the credential as a parameter.
SecretClient client = new SecretClientBuilder()
.vaultUrl("https://<your Key Vault name>.vault.azure.net")
.credential(new DefaultAzureCredentialBuilder().build())
.buildClient();
Autenticar bibliotecas de gerenciamento do Azure
As bibliotecas de gerenciamento do Azure usam as mesmas APIs de credencial que as bibliotecas de cliente do Azure, mas também exigem uma ID de assinatura do Azure para gerenciar os recursos do Azure nessa assinatura.
É possível localizar as IDs de assinatura na página Assinaturas no portal do Azure. Como alternativa, use o seguinte comando da CLI do Azure para obter IDs de assinatura:
az account list --output table
Você pode definir a ID da assinatura na variável de ambiente AZURE_SUBSCRIPTION_ID
. AzureProfile
pega essa ID como a ID de assinatura padrão durante a criação de uma instância Manager
no seguinte exemplo:
AzureResourceManager azureResourceManager = AzureResourceManager.authenticate(
new DefaultAzureCredentialBuilder().build(),
new AzureProfile(AzureEnvironment.AZURE))
.withDefaultSubscription();
O DefaultAzureCredential
usado neste exemplo autentica uma instância do AzureResourceManager
usando DefaultAzureCredential
. Você também pode usar outras implementações de credencial de token oferecidas na biblioteca de identidades do Azure no lugar de DefaultAzureCredential
.
Solução de problemas
Para obter diretrizes, consulte Solucionar problemas de autenticação do Azure Identity.
Próximas etapas
Este artigo apresentou a funcionalidade de identidade do Azure disponível no SDK do Azure para Java. Descreveu DefaultAzureCredential
como comum e é apropriado em muitos casos. Os seguintes artigos descrevem outras maneiras de autenticar usando a biblioteca de identidades do Azure e fornecem mais informações sobre DefaultAzureCredential
: