DeviceCodeCredential Clase
- java.
lang. Object - com.
azure. identity. DeviceCodeCredential
- com.
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:
- Vaya a Azure Active Directory en Azure Portal y busque el registro de aplicación.
- Vaya a la sección Authentication (Autenticación).
- En URI redirigidos sugeridos, compruebe el URI que termina con /common/oauth2/nativeclient.
- 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<Authentication |
authenticate()
Autentica a un usuario a través del flujo de código del dispositivo. |
reactor.core.publisher.Mono<Authentication |
authenticate(TokenRequestContext request)
Autentica a un usuario a través del flujo de código del dispositivo. |
reactor.core.publisher.Mono<Access |
getToken(TokenRequestContext request) |
Access |
getTokenSync(TokenRequestContext request) |
Métodos heredados de java.lang.Object
Detalles del método
authenticate
public Mono
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:
authenticate
public Mono
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:
Returns:
getToken
public Mono
Parameters:
getTokenSync
public AccessToken getTokenSync(TokenRequestContext request)
Parameters: