Partilhar 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 autenticação de token do Microsoft Entra. Esse suporte permite a autenticação de aplicativos executados localmente em máquinas de desenvolvedores por meio de um conjunto de TokenCredential implementações.

Este artigo aborda os seguintes temas:

Para solucionar problemas de autenticação do ambiente de desenvolvimento, consulte Solucionar problemas de autenticação do ambiente de desenvolvimento.

Credencial de código do dispositivo

A credencial de código de dispositivo autentica interativamente um usuário em dispositivos com interface do usuário limitada. Ele funciona solicitando que o usuário visite uma URL de entrada em uma máquina habilitada para navegador quando o aplicativo tenta se autenticar. Em seguida, o utilizador introduz o código do dispositivo mencionado nas instruções, juntamente com as suas credenciais de início de sessão. 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, consulte Plataforma de identidade da Microsoft e o fluxo de concessão de autorização de dispositivo OAuth 2.0.

Habilitar aplicativos para fluxo de código de dispositivo

Para autenticar um usuário por meio do fluxo de código do dispositivo, execute as seguintes etapas:

  1. Vá para Microsoft Entra ID no portal do Azure e encontre seu registro de 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 permitem que o aplicativo se autentique, mas ele ainda não tem permissão para entrar no ID do Microsoft Entra ou acessar recursos em seu nome. Para resolver esse problema, navegue até Permissões de API e habilite o Microsoft Graph e os recursos que você deseja acessar.

Também tem de ser o administrador do seu inquilino para dar o seu consentimento à sua aplicação quando iniciar sessão pela primeira vez.

Se não for possível configurar a opção de fluxo de código do dispositivo em sua ID do Microsoft Entra, ela pode exigir 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 o aplicativo como cliente público.

Autenticar uma conta de usuário com fluxo de código de dispositivo

O exemplo a seguir demonstra a autenticação da SecretClient biblioteca de cliente azure-security-keyvault-secrets usando o 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 oferece uma experiência de autenticação suave, permitindo que você use suas próprias credenciais para autenticar seu aplicativo.

Habilitar aplicativos para fluxo OAuth 2 do navegador interativo

Para usar InteractiveBrowserCredentialo , você precisa registrar um aplicativo no Microsoft Entra ID com permissões para entrar em nome de um usuário. Siga as etapas anteriores para o fluxo de código do dispositivo para registrar seu aplicativo. Como 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 notar que no InteractiveBrowserCredentialBuilder, um URL de redirecionamento é necessário. Adicione a URL de redirecionamento à subseção Redirecionar URIs na seção Autenticação do seu aplicativo Microsoft Entra registrado.

Autenticar uma conta de usuário interativamente no navegador

O exemplo a seguir demonstra a autenticação da SecretClient biblioteca de cliente azure-security-keyvault-secrets usando o 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 habilitado ou a entidade de serviço na CLI do Azure. Ele usa a CLI do Azure dada a um usuário que já está conectado a ela e usa a CLI para autenticar o aplicativo no Microsoft Entra ID.

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 tiver 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 seguinte comando 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 de tempo, dependendo da validade do token de atualização em sua organização. Geralmente, 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 da biblioteca de cliente azure-security-keyvault-secrets usando o em uma estação de trabalho com a SecretClientAzureCliCredential 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 IntelliJ

A credencial IntelliJ é autenticada em um ambiente de desenvolvimento com a conta no Kit de Ferramentas do Azure para IntelliJ. Ele usa as informações do usuário conectado no IDE IntelliJ e as usa para autenticar o aplicativo no Microsoft Entra ID.

Entrar no Kit de Ferramentas do Azure para IntelliJ para IntelliJCredential

Use as seguintes etapas para entrar:

  1. Na janela do IntelliJ, abra Plug-ins de configurações > de arquivo>.
  2. Pesquise "Azure Toolkit for IntelliJ" no mercado. Instale e reinicie o IDE.
  3. Localizar o novo item de menu Ferramentas > Azure > Sign In
  4. O Login no dispositivo ajuda-o a iniciar sessão como uma conta de utilizador. Siga as instruções para entrar no site com o login.microsoftonline.com código do dispositivo. O IntelliJ solicita que você selecione suas assinaturas. Selecione a assinatura com os recursos que você deseja acessar.

No Windows, você também precisa do caminho do banco de dados KeePass para ler as credenciais do IntelliJ. Você pode encontrar o caminho nas configurações do IntelliJ em Configurações de arquivo Aparência & Comportamento > Configurações >> do > sistema Senhas. Anote o local do caminho KeePassDatabase.

Autenticar uma conta de usuário com o IntelliJ IDEA

O exemplo a seguir demonstra a autenticação da SecretClient biblioteca de cliente azure-security-keyvault-secrets usando o em uma estação de trabalho onde o IntelliJ IDEA está instalado e o IntelliJCredential usuário entrou com uma conta do Azure.

IntelliJCredential intelliJCredential = new IntelliJCredentialBuilder()
  // KeePass configuration isrequired only for Windows. No configuration needed for Linux / Mac.
  .keePassDatabasePath("C:\\Users\\user\\AppData\\Roaming\\JetBrains\\IdeaIC2020.1\\c.kdbx")
  .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();

Credencial do Visual Studio Code

A credencial do Visual Studio Code permite a autenticação em ambientes de desenvolvimento onde o VS Code é instalado com a extensão VS Code Azure Account. Ele usa as informações do usuário conectado no IDE do VS Code e as usa para autenticar o aplicativo no Microsoft Entra ID.

Entrar no Visual Studio Code Azure Account Extension for VisualStudioCodeCredential

A integração Nn com a extensão de Conta do Azure lida com a autenticação de código do Visual Studio. Para usar essa forma de autenticação, instale a extensão de Conta do Azure e use Exibir Paleta de Comandos para executar o comando Azure: Entrar>. Este comando abre uma janela do navegador e exibe uma página que permite entrar no Azure. Depois de concluir o processo de início de sessão, pode fechar o navegador conforme indicado. A execução do aplicativo (no depurador ou em qualquer lugar na máquina de desenvolvimento) usa a credencial do seu login.

Autenticar uma conta de usuário com o Visual Studio Code

O exemplo a seguir demonstra a autenticação da SecretClient biblioteca de cliente azure-security-keyvault-secrets usando o em uma estação de trabalho onde o Visual Studio Code está instalado e o VisualStudioCodeCredential usuário entrou com uma conta do Azure.

VisualStudioCodeCredential visualStudioCodeCredential = new VisualStudioCodeCredentialBuilder().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(visualStudioCodeCredential)
  .buildClient();

Próximos passos

Este artigo abordou a autenticação durante o desenvolvimento usando credenciais disponíveis no seu computador. Essa forma de autenticação é uma das várias maneiras de autenticar no SDK do Azure para Java. Os artigos a seguir descrevem outras maneiras:

Se você tiver problemas relacionados à autenticação do ambiente de desenvolvimento, consulte Solucionar problemas de autenticação do ambiente de desenvolvimento.

Depois de dominar a autenticação, consulte Configurar o log no SDK do Azure para Java para obter informações sobre a funcionalidade de registro em log fornecida pelo SDK.