Una breve introducción al flujo de dispositivos OAuth 2.0
Este artículo explora el flujo de dispositivos OAuth 2.0, una solución para la autenticación de identidad en dispositivos que carecen de un navegador para realizar una autorización basada en el agente de usuario o tienen restricciones de entrada, describiendo su propósito y flujo de interacción del usuario.
Como marco de autorización, OAuth 2.0 es ampliamente utilizado en varios escenarios. En los flujos de autenticación proporcionados por OAuth, el más común es el Flujo de Código de Autorización. Cuando un usuario autentica su identidad dentro de una aplicación usando el Flujo de Código de Autorización, la aplicación abrirá un navegador desde el dispositivo para acceder al punto final de autorización, y luego el usuario ingresará sus identificadores (nombre de usuario, correo electrónico, etc.) y credenciales (contraseña, código de verificación, etc.) para completar la autenticación.
Sin embargo, cuando un usuario intenta usar una aplicación en un dispositivo que no tiene un navegador o incluso la capacidad de ingresar sus credenciales de cuenta, ¿cómo podemos realizar la autenticación de identidad a través de OAuth 2.0? Y aquí es donde el "flujo de dispositivos" entra en juego.
Qué es el flujo de dispositivos OAuth 2.0
El flujo de dispositivos OAuth 2.0 es una implementación del protocolo OAuth 2.0 diseñado para admitir dispositivos que tienen capacidades de entrada limitadas o carecen de un navegador adecuado. Estos dispositivos incluyen televisores inteligentes, dispositivos IoT, impresoras, etc.
El flujo de dispositivos permite a los usuarios iniciar solicitudes de autorización en los dispositivos mencionados, posteriormente, el usuario puede revisar la solicitud de autorización y completar la autorización del usuario a través de otro dispositivo con acceso al navegador y capacidades de entrada, como un teléfono inteligente o una computadora personal.
Además, el flujo de dispositivos se usa a menudo para herramientas CLI (como las proporcionadas por Stripe, Github, Cloudflare), porque las herramientas CLI a menudo se ejecutan en sistemas operativos sin una interfaz gráfica.
Flujo de interacción del usuario al usar el flujo de dispositivos
Cuando un usuario utiliza el flujo de dispositivos para la autenticación, incluye principalmente los siguientes pasos:
- El cliente del dispositivo solicita autorización al servidor de autenticación con un identificador de cliente (generalmente el id del cliente en la plataforma del servidor de autenticación).
- El servidor de autenticación responde al cliente del dispositivo con el código de dispositivo, código de usuario y URI de verificación.
- El cliente del dispositivo muestra el URI de verificación y código de usuario al usuario en forma de texto (o un código QR, etc.), instruyendo al usuario para visitar el URI e ingresar el código.
- Al mismo tiempo que el paso 3, el cliente del dispositivo comienza a sondear para obtener tokens de acceso con el código de dispositivo e identificador de cliente del servidor de autenticación y comienza a esperar a que el usuario revise la solicitud de autorización y complete la autorización del usuario.
- El usuario visita el URI de verificación alojado por el servidor de autenticación a través de un navegador en otro dispositivo e ingresa el código de usuario.
- El servidor de autenticación redirige al usuario a la página de inicio de sesión e instruye al usuario para completar el inicio de sesión.
- El usuario completa el flujo de inicio de sesión e inicia sesión con éxito.
- El servidor de autenticación redirige al usuario a la página de éxito de inicio de sesión e instruye al usuario para cerrar el navegador.
- Al mismo tiempo que el paso 8, el servidor de autenticación devuelve tokens de acceso al cliente del dispositivo ya que el cliente ha estado sondeando desde el paso 4.
Después de estos procesos, ¡el cliente del dispositivo podrá obtener el token de acceso para servicios posteriores!
Resumen
Como has observado, el flujo de dispositivos OAuth 2.0 proporciona un método de inicio de sesión fácil de usar para dispositivos que carecen de capacidades de entrada fáciles o un navegador. Esto es crucial para dispositivos como televisores inteligentes, dispositivos IoT y herramientas CLI que se ejecutan en dispositivos que carecen de interfaces gráficas.
Viene noticias emocionantes ya que Logto está en proceso de admitir la función de flujo de dispositivos. Mantente atento y te mantendremos informado con las últimas actualizaciones.