Autenticação do Azure com credenciais de usuário
Este artigo analisa como a biblioteca de identidade do Azure oferece 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 do TokenCredential discutidas neste artigo.
Este artigo abrange os seguintes assuntos:
- Credencial do código do dispositivo
- Credencial interativa do navegador
- Credenciais de senha de nome de usuário
Para solucionar problemas de autenticação de credenciais do usuário, consulte Solucionar problemas de autenticação de credenciais do 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 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 o Microsoft Entra ID no portal do Azure e encontre o registro do seu 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
yes
paraTreat application as a public client
.
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, como o Key Vault.
Você também precisa ser o administrador do seu locatário para dar consentimento à sua solicitação quando entrar 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 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 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 InteractiveBrowserCredentialBuilder
exige uma URL de redirecionamento. 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
.
/**
* 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:
- Autenticação do Azure em ambientes de desenvolvimento
- Autenticação de aplicativos hospedados no Azure
- Autenticação com entidades de serviço
Se você tiver problemas relacionados à autenticação de credenciais do usuário, consulte Solucionar problemas de autenticação de credenciais do 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.