Compartilhar via


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:

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:

  1. Acesse a ID do Microsoft Entra no portal do Azure e localize o registro do aplicativo.
  2. Navegue até a seção Autenticação.
  3. Em URIs Redirecionados Sugeridos, verifique o URI que termina com /common/oauth2/nativeclient.
  4. 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:

  1. Em sua janela do IntelliJ, abra Arquivo > Configurações > Plug-ins.
  2. Pesquise Azure Toolkit for IntelliJ no marketplace. Instale e reinicie o IDE.
  3. Localize o novo item de menu Ferramentas > Azure > Entrada no Azure
  4. 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:

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.