Autenticação do Azure com credenciais de usuário

Este artigo examina como a biblioteca de Identidades do Azure dá suporte à autenticação de token do Microsoft Entra com credenciais fornecidas pelo usuário. Esse suporte é possível por meio de um conjunto de implementações TokenCredential discutidas neste artigo.

Este artigo aborda os seguintes assuntos:

Para solucionar problemas de autenticação de credenciais de usuário, consulte Solucionar problemas de autenticação de credenciais de usuário.

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 uma URL de entrada em uma máquina habilitada para navegador quando o aplicativo tentar 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. 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 yes para Treat application as a public client.

Essas etapas permitem que o aplicativo se autentique, mas ele ainda não tem permissão para entrar na 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, como o Cofre de Chaves.

Você também precisa ser o administrador do seu locatário para conceder consentimento ao seu aplicativo quando você entrar pela primeira vez.

Se você não conseguir configurar a opção de fluxo de código do dispositivo em sua ID do Microsoft Entra, 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 de Segredo do Azure Key Vault para Java usando a DeviceCodeCredential em um dispositivo IoT.

/**
 * Authenticate with device code credential.
 */
DeviceCodeCredential deviceCodeCredential = new DeviceCodeCredentialBuilder()
    .challengeConsumer(challenge -> {
    // Lets the user know about 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 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 observar que InteractiveBrowserCredentialBuilder exige uma URL de redirecionamento. Adicione a URL de redirecionamento à subseção Redirecionar URIs na seção Autenticação do 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.

/**
 * Authenticate interactively in the browser.
 */
InteractiveBrowserCredential interactiveBrowserCredential = new InteractiveBrowserCredentialBuilder()
    .clientId("<your app client ID>")
    .redirectUrl("YOUR_APP_REGISTERED_REDIRECT_URL")
    .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();

Credenciais de senha de nome de usuário

A UsernamePasswordCredential ajuda a autenticar um aplicativo cliente público usando as credenciais do usuário que não exigem autenticação multifator. O exemplo a seguir demonstra a autenticação do SecretClient da biblioteca de clientes azure-security-keyvault-secrets usando a UsernamePasswordCredential. O usuário não deve ter a autenticação multifator ativada.

/**
 * Authenticate with username, password.
 */
UsernamePasswordCredential usernamePasswordCredential = new UsernamePasswordCredentialBuilder()
    .clientId("<your app client ID>")
    .username("<your username>")
    .password("<your password>")
    .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(usernamePasswordCredential)
    .buildClient();

Para mais informações, confira Plataforma de identidade da Microsoft e credenciais de Senha de Proprietário do Recurso do OAuth 2.0.

Próximas etapas

Este artigo abordou a autenticação com as credenciais do usuário. 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 de credenciais de usuário, consulte Solucionar problemas de autenticação de credenciais de usuário.

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.