Configuración Avanzada de OAuth2
Auris admite cuatro capacidades avanzadas de OAuth2 más allá del flujo estándar de Authorization Code + PKCE: Device Authorization Flow, Client-Initiated Backchannel Authentication (CIBA), DPoP (Demonstration of Proof-of-Possession) e Intercambio de Tokens. Cada característica se configura por aplicación y puede habilitarse de forma independiente.
Estas características abordan escenarios empresariales como la autenticación en dispositivos con entrada limitada (smart TVs, herramientas CLI), autenticación iniciada por el servidor (centros de llamadas, aprobaciones en quioscos), vinculación criptográfica de tokens al remitente, y delegación de identidad controlada.
Accede desde Consola → Aplicaciones → selecciona una aplicación → pestaña Configuración.
Device Authorization Flow (RFC 8628)
El Device Authorization Flow permite que los usuarios se autentiquen en dispositivos que no disponen de navegador o tienen capacidades de entrada limitadas. El dispositivo muestra un código corto que el usuario introduce en otro dispositivo (teléfono u ordenador) para autorizar la sesión.
Habilitar Device Flow
Abrir la configuración de la aplicación
Ve a Consola → Aplicaciones y haz clic en la aplicación que deseas configurar. Navega a la pestaña Configuración.
Habilitar Device Flow
Activa Habilitar Device Flow.
Configurar los ajustes
| Ajuste | Por defecto | Descripción |
|---|---|---|
| Intervalo de sondeo | 5 segundos | Con qué frecuencia debe sondear el dispositivo el endpoint de tokens para obtener el estado de autorización. Un valor demasiado bajo aumenta la carga del servidor. |
| Duración del código | 600 segundos (10 min) | Cuánto tiempo permanece válido el código de usuario. Tras su expiración, el dispositivo debe solicitar un nuevo código. |
| Longitud del código de usuario | 8 caracteres | Longitud del código mostrado al usuario. Los códigos más largos son más seguros pero más difíciles de escribir. |
Guardar
Haz clic en Guardar para aplicar la configuración.
URI de Verificación
Tras habilitar Device Flow, Auris proporciona un URI de Verificación para tu aplicación. Esta es la URL que muestras a los usuarios junto con el código del dispositivo. El formato es:
https://auth.yourdomain.com/hosted/deviceTu aplicación de dispositivo debe mostrar tanto el URI de verificación como el código de usuario, por ejemplo:
Para iniciar sesión, visita: https://auth.yourdomain.com/hosted/device
Introduce el código: ABCD-EFGHEl URI de verificación es el mismo para todas las aplicaciones de tu tenant. El código de usuario identifica de forma única la sesión de autorización del dispositivo, por lo que no se necesita una URL específica por aplicación.
Cómo Funciona
- El dispositivo solicita un código de dispositivo a
POST /api/oauth/device/authorize - El usuario visita el URI de verificación e introduce el código
- El usuario se autentica normalmente (contraseña, MFA, SSO — lo que requiera tu tenant)
- El dispositivo sondea
POST /api/auth/tokencongrant_type=urn:ietf:params:oauth:grant-type:device_codehasta que el usuario complete la autenticación - Una vez autorizado, el dispositivo recibe los tokens de acceso y de actualización
/api/oauth/device/authorize/api/auth/tokenClient-Initiated Backchannel Authentication (CIBA)
CIBA permite la autenticación de servidor a servidor donde la parte dependiente inicia la autenticación sin que el usuario esté presente en la aplicación. El usuario recibe una notificación (SMS o email) y aprueba el inicio de sesión en su propio dispositivo.
Los casos de uso típicos incluyen la autenticación en centros de llamadas (“hemos enviado una notificación a tu teléfono — por favor apruébala para verificar tu identidad”) y la re-autenticación en segundo plano para sesiones de larga duración.
Habilitar CIBA
Abrir la configuración de la aplicación
Ve a Consola → Aplicaciones y selecciona la aplicación. Navega a la pestaña Configuración.
Habilitar CIBA
Activa Habilitar CIBA.
Configurar los ajustes de notificación
| Ajuste | Por defecto | Descripción |
|---|---|---|
| Modo de Notificación | Poll | Cómo recibe la parte dependiente el resultado de la autenticación. Ver Modos de Notificación más abajo. |
| Canal de Notificación | Cómo se notifica al usuario de la autenticación pendiente: SMS o Email. | |
| Duración de la Solicitud | 300 segundos (5 min) | Cuánto tiempo es válida la solicitud de autenticación antes de expirar. |
| Modo de Entrega de Token | Poll | Cómo recibe el cliente los tokens finales. Opciones: poll, ping, push. |
Configurar la URL de callback (solo modos ping/push)
Si usas el modo de notificación ping o push, introduce la URL de Callback donde Auris debe enviar el resultado de la autenticación.
Guardar
Haz clic en Guardar para aplicar la configuración.
Modos de Notificación
| Modo | Comportamiento |
|---|---|
| Poll | La parte dependiente sondea el endpoint de tokens a intervalos hasta que el usuario responde. El más sencillo de implementar. |
| Ping | Auris envía una notificación a la URL de callback cuando el usuario responde; luego la parte dependiente llama al endpoint de tokens para recuperar los tokens. |
| Push | Auris envía los tokens directamente a la URL de callback cuando el usuario los aprueba. La parte dependiente no necesita sondear. |
El modo push entrega los tokens directamente a tu URL de callback. Asegúrate de que este endpoint está protegido con TLS y valida la firma de la solicitud entrante. Si la URL de callback se ve comprometida, un atacante podría interceptar los tokens.
/api/oauth/backchannel/authorizeDPoP (Demonstration of Proof-of-Possession) — RFC 9449
DPoP vincula los tokens de acceso a un cliente específico exigiendo al cliente que demuestre la posesión de una clave privada en cada solicitud. Esto previene el robo y la repetición de tokens — incluso si un token de acceso es interceptado, no puede usarse sin la clave privada correspondiente.
Habilitar DPoP
Abrir la configuración de la aplicación
Navega a Consola → Aplicaciones → selecciona la aplicación → pestaña Configuración.
Habilitar DPoP
Activa Habilitar DPoP.
Configurar los ajustes de DPoP
| Ajuste | Por defecto | Descripción |
|---|---|---|
| Habilitar DPoP | Desactivado | Permite a los clientes usar pruebas DPoP al solicitar tokens. |
| Requerir DPoP | Desactivado | Cuando está habilitado, Auris rechaza las solicitudes de token que no incluyan una prueba DPoP válida. Solo habilítalo tras confirmar que todos los clientes admiten DPoP. |
| Requerir Nonces | Desactivado | Añade nonces emitidos por el servidor al flujo DPoP para protección contra repetición. Aumenta la seguridad pero añade un viaje de ida y vuelta adicional. |
Guardar
Haz clic en Guardar para aplicar.
Cómo Funciona DPoP
- El cliente genera un par de claves asimétricas (habitualmente ECDSA P-256)
- En cada solicitud de token, el cliente crea un JWT de prueba DPoP firmado con su clave privada, que contiene el método HTTP, la URL y un identificador único
- Auris verifica la prueba y vincula el token emitido a la clave pública del cliente (huella JWK)
- En las llamadas a la API posteriores, el cliente incluye tanto el token de acceso como una cabecera de prueba DPoP actualizada
- Los servidores de recursos verifican que el claim
jkt(JWK Thumbprint) del token coincide con la prueba DPoP
La configuración de DPoP también aparece en la página de detalle de la aplicación bajo la sección Seguridad, proporcionando acceso rápido a los mismos ajustes desde múltiples rutas de navegación.
Intercambio de Tokens (RFC 8693)
El Intercambio de Tokens permite que un servicio intercambie un token de acceso por un nuevo token con diferentes scopes, sujeto o audiencia. Esto admite dos patrones: suplantación (actuar como otro usuario) y delegación (actuar en nombre de otro usuario manteniendo la identidad original).
Habilitar el Intercambio de Tokens
Abrir la configuración de la aplicación
Navega a Consola → Aplicaciones → selecciona la aplicación → pestaña Configuración.
Habilitar el Intercambio de Tokens
Activa Habilitar Intercambio de Tokens.
Seleccionar los tipos de intercambio permitidos
| Tipo | Permiso Requerido | Descripción |
|---|---|---|
| Suplantación | impersonate:users | El token resultante tiene al usuario objetivo como sujeto. La identidad original no se conserva. Se usa en escenarios de soporte administrativo. |
| Delegación | delegate:tokens | El token resultante incluye un claim act (actor) que conserva la identidad del solicitante original. El sujeto es el usuario objetivo. Se usa en cadenas de delegación de servicio a servicio. |
Guardar
Haz clic en Guardar para aplicar.
La suplantación es una capacidad poderosa. Solo concede el permiso impersonate:users
a aplicaciones y roles de alta confianza. Todos los intercambios de tokens quedan registrados en el log de auditoría
con las identidades original y objetivo.
/api/auth/tokenMonitorización
La Consola ofrece páginas de monitorización dedicadas para cada característica avanzada de OAuth2. Accede a ellas desde la sección OAuth Avanzado en la barra lateral.
Códigos de Dispositivo
Ve a Consola → OAuth Avanzado → Códigos de Dispositivo para ver todas las sesiones de autorización de dispositivo activas y expiradas.
| Columna | Descripción |
|---|---|
| Código de Usuario | El código mostrado al usuario |
| Cliente | La aplicación que solicitó el código de dispositivo |
| Estado | Pendiente, Autorizado, Expirado o Denegado |
| Creado En | Cuándo se emitió el código de dispositivo |
| Expira En | Cuándo expira el código de dispositivo |
| Usuario | El usuario que autorizó la sesión (si fue autorizado) |
Solicitudes CIBA
Ve a Consola → OAuth Avanzado → Solicitudes CIBA para ver las solicitudes de autenticación backchannel.
| Columna | Descripción |
|---|---|
| ID de Solicitud | Identificador único de la solicitud CIBA |
| Usuario | El usuario que se está autenticando |
| Cliente | La aplicación que inició la solicitud |
| Estado | Pendiente, Completado, Expirado o Denegado |
| Modo de Notificación | Poll, Ping o Push |
| Creado En | Cuándo se inició la solicitud |
Intercambios de Tokens
Ve a Consola → OAuth Avanzado → Intercambios de Tokens para ver el log de auditoría de todas las operaciones de intercambio de tokens.
| Columna | Descripción |
|---|---|
| Timestamp | Cuándo ocurrió el intercambio |
| Tipo | Suplantación o Delegación |
| Identidad Origen | La identidad autenticada original |
| Identidad Destino | La identidad del usuario objetivo |
| Cliente | La aplicación que realizó el intercambio |
| Scopes | Los scopes concedidos en el token intercambiado |
Puntuación de Riesgo
Las características avanzadas de OAuth2 se integran con el motor de puntuación de riesgo de Auris. Cuando la puntuación de riesgo está habilitada, cada autenticación a través de Device Flow, CIBA o Intercambio de Tokens se evalúa por riesgo igual que un inicio de sesión estándar. Las autenticaciones de alto riesgo pueden activar requisitos de MFA adicional.
Para la configuración detallada del motor de riesgo, pesos de factores, umbrales y reglas personalizadas, consulta la página dedicada Puntuación de Riesgo y MFA Adaptativo.
Permisos
Los siguientes permisos controlan el acceso a las características avanzadas de OAuth2:
| Permiso | Descripción |
|---|---|
view:device_codes | Ver sesiones de autorización de dispositivo activas |
manage:device_codes | Revocar códigos de dispositivo |
view:token_exchanges | Ver el log de auditoría de intercambio de tokens |
impersonate:users | Realizar intercambios de tokens de suplantación |
delegate:tokens | Realizar intercambios de tokens de delegación |
manage:dpop_config | Configurar los ajustes de DPoP en las aplicaciones |
view:ciba_requests | Ver solicitudes de autenticación backchannel |
manage:ciba_config | Configurar los ajustes de CIBA en las aplicaciones |
view:risk_assessments | Ver datos de evaluación de riesgo |
manage:risk_rules | Crear y modificar reglas de puntuación de riesgo |
manage:advanced_oauth | Acceso completo a todos los ajustes avanzados de OAuth2 |
Guías Relacionadas
- Puntuación de Riesgo y MFA Adaptativo — Configurar el motor de riesgo que protege todos los flujos OAuth2
- Device Authorization Flow — Guía para desarrolladores sobre cómo implementar Device Flow en tu aplicación
- Integración CIBA — Guía para desarrolladores sobre autenticación backchannel
- DPoP para Seguridad de Tokens — Cómo implementar DPoP en tu aplicación cliente
- Intercambio de Tokens — Guía para desarrolladores sobre suplantación y delegación
- Aplicaciones — Gestionar la configuración de aplicaciones en la Consola