Autenticação do Azure em ambientes de desenvolvimento Java
Este artigo fornece uma visão geral do suporte da biblioteca de identidade do Azure para a autenticação de token do Microsoft Entra. Esse suporte habilita a autenticação para aplicativos executados localmente em computadores de desenvolvedor por meio de um conjunto de implementações de TokenCredential
.
Este artigo abrange os seguintes assuntos:
- Credencial do código do dispositivo
- Credencial interativa do navegador
- Credencial da CLI do Azure
- Credencial do IntelliJ
Para solucionar problemas de autenticação do ambiente de desenvolvimento, consulte Solucionar problemas de autenticação do ambiente de desenvolvimento.
Credencial do código do dispositivo
A credencial do código do dispositivo autentica de modo interativo um usuário em dispositivos com interface do usuário limitada. Ele funciona solicitando que o usuário visite um URL de entrada em uma máquina habilitada para navegador quando o aplicativo tenta se autenticar. Em seguida, o usuário insere o código do dispositivo mencionado nas instruções junto com suas credenciais de entrada. Após a autenticação bem-sucedida, o aplicativo que solicitou a autenticação é autenticado com êxito no dispositivo em que está sendo executado.
Para obter mais informações, confira plataforma de identidade da Microsoft e o fluxo de concessão de autorização de dispositivo OAuth 2.0.
Habilitar aplicativos para o fluxo de código do dispositivo
Para autenticar um usuário por meio do fluxo de código de dispositivo, execute as seguintes etapas:
- Acesse a ID do Microsoft Entra no portal do Azure e localize o registro do aplicativo.
- Navegue até a seção Autenticação.
- Em URIs Redirecionados Sugeridos, verifique o URI que termina com
/common/oauth2/nativeclient
. - Em Tipo de Cliente Padrão, selecione Sim para Tratar o aplicativo como um cliente público.
Essas etapas habilitam o aplicativo a se autenticar, mas ele ainda não tem permissão para fazer sua assinatura no Microsoft Entra ID ou acessar recursos em seu nome. Para resolver esse problema, navegue até Permissões da API e habilite o Microsoft Graph e os recursos que você deseja acessar.
Você também deve ser o administrador do seu locatário para dar consentimento ao seu aplicativo ao fazer logon pela primeira vez.
Se não for possível configurar a opção de fluxo de código do dispositivo no Microsoft Entra ID, talvez seja necessário que seu aplicativo seja multilocatário. Para tornar seu aplicativo multilocatário, navegue até o painel Autenticação e selecione Contas em qualquer diretório organizacional. Em seguida, selecione sim para Tratar aplicativo como Cliente Público.
Autenticar uma conta de usuário com o fluxo de código do dispositivo
O exemplo a seguir demonstra a autenticação do SecretClient
da biblioteca de clientes azure-security-keyvault-secrets usando a DeviceCodeCredential
em um dispositivo IoT.
DeviceCodeCredential deviceCodeCredential = new DeviceCodeCredentialBuilder()
.challengeConsumer(challenge -> {
// lets user know of the challenge
System.out.println(challenge.getMessage());
}).build();
// Azure SDK client builders accept the credential as a parameter
SecretClient client = new SecretClientBuilder()
.vaultUrl("https://<your Key Vault name>.vault.azure.net")
.credential(deviceCodeCredential)
.buildClient();
Credencial interativa do navegador
Essa credencial autentica interativamente um usuário com o navegador do sistema padrão e proporciona uma experiência de autenticação tranquila, permitindo que você use as próprias credenciais para autenticar seu aplicativo.
Habilitar aplicativos para o fluxo do OAuth 2 do navegador interativo
Para usar InteractiveBrowserCredential
, você precisa registrar um aplicativo no Microsoft Entra ID com permissões para fazer entrar em nome de um usuário. Siga as etapas anteriores do fluxo de código do dispositivo para registrar seu aplicativo. Conforme mencionado anteriormente, um administrador do seu locatário deve conceder consentimento ao seu aplicativo antes que qualquer conta de usuário possa entrar.
Você pode observar que, em InteractiveBrowserCredentialBuilder
, uma URL de redirecionamento é necessária. Adicione a URL de redirecionamento à subseção URIs de Redirecionamento na seção Autenticação do seu aplicativo Microsoft Entra registrado.
Autenticar interativamente uma conta de usuário no navegador
O exemplo a seguir demonstra a autenticação do SecretClient
da biblioteca de clientes azure-security-keyvault-secrets usando a InteractiveBrowserCredential
.
InteractiveBrowserCredential interactiveBrowserCredential = new InteractiveBrowserCredentialBuilder()
.clientId("<your client ID>")
.redirectUrl("http://localhost:8765")
.build();
// Azure SDK client builders accept the credential as a parameter
SecretClient client = new SecretClientBuilder()
.vaultUrl("https://<your Key Vault name>.vault.azure.net")
.credential(interactiveBrowserCredential)
.buildClient();
Credencial da CLI do Azure
A credencial da CLI do Azure é autenticada em um ambiente de desenvolvimento com o usuário ou a entidade de serviço habilitado na CLI do Azure. Ele usa a CLI do Azure fornecida a um usuário que já está conectado a ela e usa a CLI para autenticar o aplicativo em relação à ID do Microsoft Entra.
Entrar na CLI do Azure para AzureCliCredential
Entre como um usuário com o seguinte comando da CLI do Azure:
az login
Entre como uma entidade de serviço usando o seguinte comando:
az login \
--service-principal \
--username <client-ID> \
--password <client-secret> \
--tenant <tenant-ID>
Se a conta ou entidade de serviço tem acesso a vários locatários, verifique se o locatário ou a assinatura desejada está no estado "habilitado" na saída do seguinte comando:
az account list
Antes de usar AzureCliCredential
no código, execute o comando a seguir para verificar se a conta foi configurada com êxito.
az account get-access-token
Talvez seja necessário repetir esse processo após um determinado período, dependendo da validade do token de atualização em sua organização. Em geral, o período de validade do token de atualização é de algumas semanas a alguns meses. AzureCliCredential
solicita que você entre novamente.
Autenticar uma conta de usuário com a CLI do Azure
O exemplo a seguir demonstra a autenticação do SecretClient
da biblioteca de cliente azure-security-keyvault-secrets usando a AzureCliCredential
em uma estação de trabalho com a CLI do Azure instalada e conectada.
AzureCliCredential cliCredential = new AzureCliCredentialBuilder().build();
// Azure SDK client builders accept the credential as a parameter.
SecretClient client = new SecretClientBuilder()
.vaultUrl("https://<your Key Vault name>.vault.azure.net")
.credential(cliCredential)
.buildClient();
Credencial do IntelliJ
A credencial do IntelliJ é autenticada em um ambiente de desenvolvimento com a conta no Azure Toolkit for IntelliJ. Ele usa as informações do usuário conectado no IntelliJ IDE e as utiliza para autenticar o aplicativo no Microsoft Entra ID.
Entrar no Azure Toolkit for IntelliJ para IntelliJCredential
Use as etapas a seguir para entrar:
- Em sua janela do IntelliJ, abra Arquivo > Configurações > Plug-ins.
- Pesquise Azure Toolkit for IntelliJ no marketplace. Instale e reinicie o IDE.
- Localize o novo item de menu Ferramentas > Azure > Entrada no Azure
- Logon do Dispositivo ajuda você a entrar como uma conta de usuário. Siga as instruções para entrar no site do
login.microsoftonline.com
com o código do dispositivo. O IntelliJ solicita que você selecione suas assinaturas. Selecione a assinatura com os recursos que você deseja acessar.
Autenticar uma conta de usuário com o IDEA do IntelliJ
O exemplo a seguir demonstra a SecretClient
autenticação da biblioteca de clientes azure-security-keyvault-secrets usando o IntelliJCredential
em uma estação de trabalho em que o IntelliJ IDEA está instalado e o usuário entrou com uma conta do Azure no Kit de Ferramentas do Azure para IntelliJ.
IntelliJCredential intelliJCredential = new IntelliJCredentialBuilder()
.build();
// Azure SDK client builders accept the credential as a parameter
SecretClient client = new SecretClientBuilder()
.vaultUrl("https://<your Key Vault name>.vault.azure.net")
.credential(intelliJCredential)
.buildClient();
Próximas etapas
Este artigo abordou a autenticação durante o desenvolvimento usando as credenciais disponíveis no seu computador. Essa forma de autenticação é uma das várias maneiras de autenticar-se no SDK do Azure para Java. Os seguintes artigos descrevem outras maneiras de realizar a:
- Autenticação de aplicativos hospedados no Azure
- Autenticação com entidades de serviço
- Autenticação com credenciais do usuário
Se você tiver problemas relacionados à autenticação do ambiente de desenvolvimento, consulte Solucionar problemas de autenticação do ambiente de desenvolvimento.
Depois de ter feito a autenticação mestra, confira Configurar o registro em log no SDK do Azure para Java para obter informações sobre a funcionalidade de registro em log fornecida pelo SDK.