Nota
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
En este artículo se describe cómo admite la biblioteca Azure Identity la autenticación de tokens de Microsoft Entra con credenciales proporcionadas por el usuario. Esta compatibilidad es posible mediante un conjunto de implementaciones de TokenCredential que se describen en este artículo.
En este artículo se tratan los siguientes asuntos:
- Credencial de código de dispositivo
- Credencial interactiva del navegador
Credencial de código de dispositivo
La credencial de código de dispositivo autentica de forma interactiva a un usuario en dispositivos con una interfaz de usuario limitada. Funciona solicitando al usuario que visite una dirección URL de inicio de sesión en una máquina habilitada para explorador cuando la aplicación intenta realizar la autenticación. Después, el usuario escribe el código de dispositivo mencionado en las instrucciones junto con sus credenciales de inicio de sesión. Tras una autenticación correcta, la aplicación que solicitó la autenticación se autentica correctamente en el dispositivo en el que se ejecuta.
Para obtener más información, consulte Plataforma de identidad de Microsoft y el flujo de concesión de autorización de dispositivo de OAuth 2.0.
Habilitación de aplicaciones para el flujo de código de dispositivo
Para autenticar a un usuario mediante el flujo de código de dispositivo, siga estos pasos:
- Vaya a Microsoft Entra ID en Azure Portal y busque el registro de la aplicación.
- Navegue a la sección Autenticación.
- Bajo Suggested Redirected URIs, verifique el URI que termina con
/common/oauth2/nativeclient
. - En Default Client Type, seleccione
yes
paraTreat application as a public client
.
Estos pasos permitirán que la aplicación se autentique, pero todavía no tendrá permiso para iniciar sesión en Microsoft Entra ID ni para acceder a los recursos en su nombre. Para abordar este problema, vaya a Permisos de API y habilite Microsoft Graph y los recursos a los que desea acceder, como Key Vault.
También debe ser el administrador del inquilino para conceder el consentimiento a la aplicación al iniciar sesión por primera vez.
Si no puede configurar la opción de flujo de código de dispositivo en Microsoft Entra ID, puede que sea necesario que la aplicación sea multiinquilino. Para que la aplicación sea multiinquilino, vaya al panel Authentication (Autenticación) y, a continuación, seleccione Accounts in any organizational directory (Cuentas en cualquier directorio organizativo). En Treat application as a public client (Tratar la aplicación como un cliente público), seleccione Yes (Sí).
Autenticar una cuenta de usuario con el flujo de código de dispositivo
En el siguiente ejemplo se muestra cómo autenticar el SecretClient
desde la biblioteca cliente de secretos de Azure Key Vault para Java utilizando el DeviceCodeCredential
en un 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 interactiva del explorador
Esta credencial autentica de forma interactiva a un usuario con el explorador del sistema predeterminado y ofrece una experiencia de autenticación sin problemas, ya que le permite usar sus propias credenciales para autenticar la aplicación.
Habilitación de aplicaciones para el flujo de OAuth 2 interactivo del explorador
Para usar InteractiveBrowserCredential
, debe registrar una aplicación en Microsoft Entra ID con permisos para iniciar sesión en nombre de un usuario. Siga los pasos anteriores correspondientes al flujo de código de dispositivo para registrar la aplicación. Como se mencionó anteriormente, un administrador del inquilino debe conceder consentimiento a la aplicación antes de que cualquier cuenta de usuario pueda iniciar sesión.
Podría observar que en InteractiveBrowserCredentialBuilder
, se requiere una dirección URL de redireccionamiento. Agregue la dirección URL de redireccionamiento a la subsección URI de redireccionamiento en la sección Autenticación de la aplicación de Microsoft Entra registrada.
Autenticación de una cuenta de usuario de forma interactiva en el explorador
En el siguiente ejemplo se muestra la autenticación del elemento SecretClient
de la biblioteca cliente azure-security-keyvault-secrets con la clase 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();
Pasos siguientes
En este artículo se ha tratado la autenticación con credenciales de usuario. Esta forma de autenticación es una de las varias maneras con las que puede autenticarse en Azure SDK para Java. En los siguientes artículos se describen otras maneras:
- Autenticación de Azure en entornos de desarrollo
- Autenticación de aplicaciones hospedadas en Azure
- Autenticación de Azure con entidades de servicio
Después de dominar la autenticación, consulte Configurar el registro en Azure SDK para Java para obtener información sobre las funciones de registro que ofrece el SDK.