Compartir a través de


Autenticación de Azure con credenciales de usuario

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

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:

  1. Vaya a Microsoft Entra ID en Azure Portal y busque el registro de la aplicación.
  2. Navegue a la sección Autenticación.
  3. Bajo Suggested Redirected URIs, verifique el URI que termina con /common/oauth2/nativeclient.
  4. En Default Client Type, seleccione yes para Treat 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:

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.