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

Este artigo analisa 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 temas:

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

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, use as seguintes etapas:

  1. Aceda ao ID do Microsoft Entra no portal do Azure e localize o registo da sua aplicação.
  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 .Treat application as a public client

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, como o Cofre da Chave.

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 do Azure Key Vault Secret para Java usando o 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 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 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.

/**
 * 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();

Credencial de senha de nome de usuário

O UsernamePasswordCredential ajuda a autenticar um aplicativo cliente público usando as credenciais de usuário que não exigem autenticação multifator. O exemplo a seguir demonstra a autenticação da SecretClient biblioteca de cliente azure-security-keyvault-secrets usando o 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 obter mais informações, consulte Plataforma de identidade da Microsoft e Credenciais de senha do proprietário do recurso OAuth 2.0.

Próximos passos

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

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.