Dispositivos confiables para MFA
Los dispositivos confiables para MFA permiten a los usuarios omitir solicitudes repetidas de MFA en un navegador que consideran de confianza. Después de una verificación o configuración de MFA elegible, los usuarios pueden elegir confiar en el navegador en una página separada de Confiar en este dispositivo al final del inicio de sesión o registro. Logto almacena entonces una credencial con tiempo limitado en una cookie de primera parte. En un inicio de sesión posterior, una credencial válida puede cumplir el paso de verificación de MFA sin interacción del usuario.
Un dispositivo confiable no es un nuevo factor de MFA y no cambia cuándo Logto requiere MFA. Solo puede cumplir el paso de MFA en un flujo de inicio de sesión. No puede satisfacer la verificación de identidad, verificación reciente, recuperación de cuenta, gestión de factores de MFA u otra operación sensible de la cuenta.
Cómo funcionan los dispositivos confiables
Cuando un inicio de sesión llega al paso de verificación de MFA, Logto:
- Evalúa la política de MFA existente para decidir si se requiere MFA.
- Verifica si los dispositivos confiables están habilitados para el inquilino y permitidos por cada organización a la que pertenece el usuario.
- Valida la cookie del navegador contra un registro activo del lado del servidor para el usuario identificado.
- Completa el MFA automáticamente cuando la credencial es válida. De lo contrario, Logto elimina una credencial inválida y continúa con el flujo convencional de MFA.
Confiar en un dispositivo durante el inicio de sesión o registro
La experiencia de inicio de sesión incorporada presenta Confiar en este dispositivo como una página separada al final de un flujo de inicio de sesión o registro elegible, después de la finalización del perfil requerida y los pasos de MFA. Confiar en el navegador es una elección explícita en esta página, separada de la verificación o configuración de MFA.
La página solo aparece cuando los dispositivos confiables están habilitados para el inquilino, permitidos por cada organización a la que pertenece el usuario, y la interacción actual contiene una prueba de MFA elegible:
- Verificación exitosa de MFA con una app autenticadora OTP habilitada, passkey (WebAuthn), código de verificación por correo electrónico o código de verificación por SMS.
- Vinculación exitosa de una app autenticadora o passkey durante la configuración de MFA, incluida la configuración durante el registro.
La página no se muestra durante el restablecimiento de contraseña o cuando la interacción no tiene una prueba de MFA elegible. La verificación con código de respaldo o una credencial de dispositivo confiable existente por sí sola no califica, por lo que la página no se muestra en cada inicio de sesión o registro. Una elección previa de Omitir también puede suprimir la página, como se describe a continuación.
En la página, los usuarios pueden elegir:
- Confiar en este dispositivo por N días: optar por la duración de confianza configurada. Logto crea el registro de dispositivo confiable y la credencial de cookie solo después de que la interacción completa tiene éxito.
- Omitir: continuar sin crear un dispositivo confiable. Omitir esta página no omite ninguna verificación o configuración de MFA requerida.
Cuando un usuario selecciona Omitir, Logto almacena una cookie de exclusión separada, limitada a ese inquilino y usuario en el navegador actual. Su duración es la duración de confianza configurada en el momento de omitir. Mientras el navegador conserve esta cookie, los inicios de sesión posteriores no mostrarán la página nuevamente. Después de que expire o se elimine, un flujo elegible posterior puede mostrar la página nuevamente. La cookie de exclusión no otorga confianza al dispositivo ni cumple el MFA.
Si un usuario selecciona Omitir y luego quiere confiar en el navegador actual, el enfoque recomendado es eliminar la cookie de exclusión correspondiente para el dominio de Logto usando la configuración de cookies del navegador o las herramientas de desarrollador. Su nombre comienza con __Host-logto-device-trust-opt-out-.
Alternativamente, borra todas las cookies para el dominio de Logto.
Después de cualquiera de las opciones, inicia sesión nuevamente, completa la verificación o configuración de MFA elegible y elige Confiar en este dispositivo por N días cuando aparezca la página.
La creación del dispositivo confiable y las actualizaciones de metadatos posteriores al inicio de sesión son de mejor esfuerzo, por lo que un fallo no invalida una interacción de autenticación exitosa.
Configurar la política de dispositivos confiables
Política global
Navega a Consola > Autenticación multifactor y configura Dispositivos confiables:
- Habilita o deshabilita los dispositivos confiables para el inquilino. La política está deshabilitada por defecto.
- Establece una duración de confianza en días, de 1 a 365. El valor predeterminado es 30 días.
La duración es fija cuando se crea un dispositivo confiable. Usar el dispositivo no extiende su tiempo de expiración, y cambiar la duración solo afecta a los dispositivos creados posteriormente.
Deshabilitar la política global impide que los dispositivos confiables existentes cumplan el MFA, pero no los elimina. Si vuelves a habilitar la política, los registros que no hayan expirado o sido eliminados pueden volver a ser utilizables.
Restricciones a nivel de organización
Una organización puede permitir o no permitir dispositivos confiables para sus miembros. Esta configuración solo puede restringir la política a nivel de inquilino:
- Una organización no puede habilitar dispositivos confiables cuando la política global está deshabilitada.
- Si alguna organización a la que pertenece el usuario no permite dispositivos confiables, la credencial de dispositivo confiable del usuario no puede cumplir el MFA, independientemente de si esa organización requiere MFA.
- Las organizaciones no tienen una duración de confianza separada. Se aplica la duración global.
No permitir dispositivos confiables para una organización suspende su uso para los miembros afectados. No elimina sus registros y no impide que los usuarios o administradores los enumeren o eliminen.
Limitaciones del navegador y las cookies
El reutilizar un dispositivo confiable requiere que el contexto del navegador conserve y devuelva una cookie persistente de primera parte para el mismo endpoint de Logto. Representa un perfil de navegador, no un dispositivo físico.
WebViews, navegadores del sistema, pestañas personalizadas, modos de privacidad, navegadores con cookies deshabilitadas y otros contextos efímeros solo pueden usar dispositivos confiables cuando su almacenamiento de cookies persiste la credencial. Si la cookie no está disponible en un inicio de sesión posterior, Logto continúa con el MFA convencional en lugar de fallar la autenticación. Diferentes navegadores, perfiles de navegador, dominios de Logto, inquilinos y usuarios no comparten credenciales de dispositivos confiables.
Logto no utiliza huellas digitales del navegador ni detecta previamente si un cliente conservará la cookie. Las aplicaciones nativas y los flujos de inicio de sesión personalizados deben tratar la creación de dispositivos confiables como de mejor esfuerzo y mantener disponible el flujo convencional de MFA.
Gestionar dispositivos confiables
Solo se enumeran los registros activos cuyo expiresAt está en el futuro. Los nombres de los dispositivos se derivan del último user agent, mientras que el país y la ciudad son metadatos aproximados del contexto de la última solicitud disponible. Las direcciones IP sin procesar no se muestran ni se devuelven por las API públicas.
Gestión por el administrador
En Consola > Gestión de usuarios, abre un usuario para ver y eliminar sus dispositivos confiables. Eliminar un dispositivo confiable solo afecta a los inicios de sesión futuros; no termina las sesiones activas del usuario.
También puedes usar la Management API:
GET /api/users/{userId}/trusted-deviceslista todos los dispositivos confiables activos de un usuario.DELETE /api/users/{userId}/trusted-devices/{trustedDeviceId}elimina un dispositivo confiable propiedad del usuario.
La respuesta de la lista incluye id, userAgent, country, city, createdAt, lastUsedAt y expiresAt.
curl https://[tenant-id].logto.app/api/users/[user-id]/trusted-devices \
-H "Authorization: Bearer [management-api-access-token]"
curl -X DELETE \
https://[tenant-id].logto.app/api/users/[user-id]/trusted-devices/[trusted-device-id] \
-H "Authorization: Bearer [management-api-access-token]"
Aprende cómo autenticarse con la Management API.
Gestión de autoservicio en el Centro de Cuenta
En Consola > Inicio de sesión y cuenta > Centro de cuenta, configura el campo Dispositivos confiables:
- Desactivado: los usuarios no pueden listar ni eliminar dispositivos confiables.
- Solo lectura: los usuarios pueden listar dispositivos confiables pero no pueden eliminarlos.
- Editar: los usuarios pueden listar y eliminar dispositivos confiables.
El Centro de Cuenta preconstruido muestra los dispositivos confiables activos en su página de seguridad y marca el navegador actual cuando su credencial de cookie completa es válida. Eliminar el navegador actual borra su cookie de dispositivo confiable pero mantiene activa la sesión de inicio de sesión actual. Eliminar el registro de otro navegador no puede borrar inmediatamente la cookie de ese navegador; la cookie obsoleta se rechaza y elimina la próxima vez que se presente.
Para un centro de cuenta personalizado, solicita el alcance urn:logto:scope:trusted_devices y usa la Account API con un registro de verificación de identidad válido:
GET /api/my-account/trusted-deviceslista los dispositivos confiables activos del usuario autenticado y añadeisCurrenta cada elemento.DELETE /api/my-account/trusted-devices/{trustedDeviceId}elimina un dispositivo confiable propiedad del usuario autenticado. La eliminación solo está disponible para aplicaciones de primera parte.
curl https://[tenant-id].logto.app/api/my-account/trusted-devices \
-H "Authorization: Bearer [account-api-access-token]" \
-H "logto-verification-id: [verification-record-id]"
curl -X DELETE \
https://[tenant-id].logto.app/api/my-account/trusted-devices/[trusted-device-id] \
-H "Authorization: Bearer [account-api-access-token]" \
-H "logto-verification-id: [verification-record-id]"
Consulta la referencia de Account API y la guía de verificación de seguridad para el flujo de autorización y verificación.
Modelo de seguridad
La credencial de dispositivo confiable es una credencial opaca de portador con dos partes: un ID de registro y un secreto aleatorio criptográficamente de 32 bytes.
- En producción, Logto la almacena en una cookie solo para el host con el prefijo
__Host-,HttpOnly,Secure,SameSite=LaxyPath=/. El JavaScript de la aplicación no puede leerla. - El servidor almacena solo el hash SHA-256 del secreto y compara las credenciales con una verificación segura en tiempo.
- Cada búsqueda de credencial está limitada al inquilino y usuario y requiere que
expiresAtesté en el futuro. - La expiración es fija en la creación. La limpieza oportunista puede eliminar filas expiradas más tarde, pero el momento de la limpieza nunca se usa como control de seguridad.
- La eliminación explícita borra el registro del lado del servidor inmediatamente. Una cookie copiada u obsoleta no puede pasar la validación después de que se elimina el registro.
Los secretos y hashes de las credenciales nunca se exponen a través de la interfaz de usuario, API públicas, registros de auditoría o webhooks. El ID público del dispositivo no es un identificador de dispositivo físico y no es suficiente para autenticar. Debido a que la cookie es una credencial de portador, copiar la cookie completa puede reproducir la confianza para el mismo inquilino y usuario hasta que el registro expire o se elimine; los dispositivos confiables no proporcionan atestación de dispositivo respaldada por hardware.
Registros de auditoría y webhooks
Los registros de auditoría específicos de dispositivos confiables incluyen:
TrustedDevice.Created: se creó un registro de dispositivo confiable y una credencial de cookie después de una interacción exitosa.TrustedDevice.Used: una credencial de dispositivo confiable cumplió el MFA y el inicio de sesión se completó con éxito.
Puedes suscribirte a estos webhooks de mutación de datos:
TrustedDevice.Created: se creó un registro de dispositivo confiable.TrustedDevice.Deleted: un usuario o administrador eliminó un registro de dispositivo confiable.
Los datos del evento contienen el id del dispositivo confiable, userId y expiresAt. Se excluyen la credencial de cookie, el hash del secreto y la IP de la solicitud. No hay webhook para el uso exitoso para evitar un alto volumen de eventos, y los cambios de política no emiten eventos de ciclo de vida de dispositivos confiables porque no modifican registros.
La expiración natural no tiene webhook TrustedDevice.Expired. La expiración ocurre cuando pasa el tiempo en lugar de cuando se ejecuta una mutación de la aplicación, y la limpieza física puede ocurrir más tarde. Usa el valor expiresAt de TrustedDevice.Created si tu integración necesita derivar el tiempo de expiración esperado.
La expiración natural tampoco crea un registro de auditoría específico de dispositivos confiables.
Consulta tipos de eventos de registro de auditoría y eventos de webhooks para los catálogos de eventos.
Notas sobre el ciclo de vida
- El cierre de sesión normal no elimina los dispositivos confiables.
- Agregar, eliminar o restablecer factores de MFA no elimina los dispositivos confiables.
- Eliminar un dispositivo confiable no termina las sesiones activas.
- Eliminar el usuario elimina sus registros de dispositivos confiables a través del ciclo de vida de los datos del usuario.
- No hay límite de cantidad de dispositivos confiables ni eliminación automática.