Compartir a través de


DeviceCodeCredential Clase

  • java.lang.Object
    • com.azure.identity.DeviceCodeCredential

Implementaciones

public class DeviceCodeCredential
implements TokenCredential

La autenticación de código de dispositivo es un tipo de flujo de autenticación que ofrece Azure Active Directory (Azure AD) que permite a los usuarios iniciar sesión en aplicaciones en dispositivos que no tienen un explorador web o un teclado. Este método de autenticación es especialmente útil para dispositivos como televisores inteligentes, consolas de juegos e dispositivos de Internet de las cosas (IoT) que pueden no tener la capacidad de escribir un nombre de usuario y una contraseña. Con la autenticación de código de dispositivo, el usuario se presenta un código de dispositivo en el dispositivo que debe autenticarse. A continuación, el usuario navega a un explorador web en un dispositivo independiente y escribe el código en la página de inicio de sesión de Microsoft. Una vez que el usuario escribe el código, Azure AD lo comprueba y solicita al usuario que inicie sesión con sus credenciales, como un nombre de usuario y una contraseña o un método de autenticación multifactor (MFA). La autenticación de código de dispositivo se puede iniciar mediante varios protocolos compatibles con Azure AD, como OAuth 2.0 y OpenID Connect, y se puede usar con una amplia gama de aplicaciones integradas en Azure AD. DeviceCodeCredential autentica interactivamente a un usuario y adquiere un token 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 la documentación de autenticación de código de dispositivo.

Configuración necesaria:

Para autenticar a un usuario mediante el flujo de código de dispositivo, siga estos pasos:

  1. Vaya a Azure Active Directory en Azure Portal y busque el registro de aplicación.
  2. Vaya a la sección Authentication (Autenticación).
  3. En URI redirigidos sugeridos, compruebe el URI que termina con /common/oauth2/nativeclient.
  4. En Default Client Type (Tipo de cliente predeterminado), seleccione Yes (Sí) en Treat application as a public client (Tratar la aplicación como un cliente público).

Estos pasos permitirán que la aplicación se autentique, pero todavía no tendrá permiso para iniciar sesión en Active Directory ni para acceder a los recursos en su nombre. Para solucionar este problema, vaya a API Permissions (Permisos de API) y habilite Microsoft Graph y los recursos a los que desea acceder, como administración de servicios de Azure, Key Vault, etc. 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 Active Directory, 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í).

Ejemplo: Construir DeviceCodeCredential

En el ejemplo de código siguiente se muestra la creación de un DeviceCodeCredentialobjeto , utilizando para DeviceCodeCredentialBuilder configurarlo. De forma predeterminada, la credencial imprime el desafío de código del dispositivo en la línea de comandos para invalidar que un challengeConsumer comportamiento se puede especificar opcionalmente en .DeviceCodeCredentialBuilder Una vez creada esta credencial, se puede pasar al generador de muchos de los generadores de cliente de Azure SDK para Java como parámetro "credential".

TokenCredential deviceCodeCredential = new DeviceCodeCredentialBuilder()
     .build();

Resumen del método

Modificador y tipo Método y descripción
reactor.core.publisher.Mono<AuthenticationRecord> authenticate()

Autentica a un usuario a través del flujo de código del dispositivo.

reactor.core.publisher.Mono<AuthenticationRecord> authenticate(TokenRequestContext request)

Autentica a un usuario a través del flujo de código del dispositivo.

reactor.core.publisher.Mono<AccessToken> getToken(TokenRequestContext request)
AccessToken getTokenSync(TokenRequestContext request)

Métodos heredados de java.lang.Object

Detalles del método

authenticate

public Mono authenticate()

Autentica a un usuario a través del flujo de código del dispositivo.

La credencial adquiere una dirección URL de verificación y un código de Azure Active Directory. El usuario debe ir a la dirección URL, escribir el código y autenticarse con Azure Active Directory. Si el usuario se autentica correctamente, la credencial recibe un token de acceso.

Returns:

que AuthenticationRecord se puede usar para autenticar silenciosamente la cuenta en la ejecución futura si se configuró el almacenamiento en caché persistente a través tokenCachePersistenceOptions(TokenCachePersistenceOptions tokenCachePersistenceOptions) de cuando se creó una instancia de credenciales.

authenticate

public Mono authenticate(TokenRequestContext request)

Autentica a un usuario a través del flujo de código del dispositivo.

La credencial adquiere una dirección URL de verificación y un código de Azure Active Directory. El usuario debe ir a la dirección URL, escribir el código y autenticarse con Azure Active Directory. Si el usuario se autentica correctamente, la credencial recibe un token de acceso.

Parameters:

request - Detalles de la solicitud de autenticación.

Returns:

que AuthenticationRecord se puede usar para autenticar silenciosamente la cuenta en la ejecución futura si se configuró el almacenamiento en caché persistente a través tokenCachePersistenceOptions(TokenCachePersistenceOptions tokenCachePersistenceOptions) de cuando se creó una instancia de credenciales.

getToken

public Mono getToken(TokenRequestContext request)

Parameters:

request

getTokenSync

public AccessToken getTokenSync(TokenRequestContext request)

Parameters:

request

Se aplica a