Home Arrow Icon Knowledge base Arrow Icon Global Arrow Icon ¿Puedo usar Authy en lugar de Google Authenticator en Laravel Fortify?


¿Puedo usar Authy en lugar de Google Authenticator en Laravel Fortify?


Laravel Fortify es un paquete de autenticación de backend para Laravel que admite la autenticación de dos factores (2FA) a través de contraseñas únicas (TOTP) basadas en el tiempo. Es flexible y agnóstico para los usuarios de aplicaciones de clientes TOTP que emplean, lo que significa que no lo vincula específicamente con Google Authenticator y puede funcionar con cualquier aplicación de autenticación basada en TOTP, incluido Authy.

¿Qué hace Laravel Fortify para 2FA?

Laravel Fortify proporciona la lógica de backend para generar las claves secretas 2FA, almacenarlas de forma segura, generar códigos de recuperación y validar los tokens TOTP durante el inicio de sesión. Utiliza la clave secreta de dos factores del usuario para verificar la contraseña única generada por cualquier aplicación de autenticador que admita el algoritmo TOTP estándar (RFC 6238). Fortify no exige ni restringe qué aplicación móvil o de escritorio debe usar el usuario.

usando Authy en lugar de Google Authenticator

Authy y Google Authenticator son aplicaciones de autenticador basadas en TOTP. Ambos generan códigos de 6 dígitos cada 30 segundos en función de una clave secreta compartida durante la configuración (generalmente escaneando un código QR). Laravel Fortify funciona a la perfección con cualquier aplicación de cliente que admita este estándar. Por lo tanto, puede usar absolutamente Authy en lugar de Google Authenticator con Laravel Fortify.

Puntos clave sobre Authy y Google Authenticator en este contexto:

- Compatibilidad: Authy utiliza el mismo estándar TOTP que el autenticador de Google, por lo que cualquier configuración de 2FA en Laravel Fortify funcionará con cualquiera de las aplicaciones sin ningún cambio en su backend de Laravel.

-Experiencia del usuario: Authy ofrece algunas ventajas sobre Google Authenticator, como la sincronización de tokens en dispositivos (soporte de múltiples dispositivos), copias de seguridad en la nube cifradas y aplicaciones de escritorio (históricamente, actualmente centradas en el móvil), lo que puede crear una mejor experiencia de usuario.

- Seguridad: Authy tiene opciones de protección de PIN y seguridad biométrica en la aplicación, y copias de seguridad cifradas, mientras que Google Authenticator carece de copias de seguridad de nubes cifradas y sincronización de dispositivos múltiples. Estas características pueden hacer que Authy sea más fácil de usar y resistente a la pérdida de dispositivos desde la perspectiva de un usuario.

- Configuración en Laravel Fortify: el único cambio en su implementación de Laravel Fortify sería proporcionar el código QR o la clave secreta al usuario para escanear en Authy en lugar de Google Authenticator. Dado que ambas aplicaciones leen el mismo formato, el código QR Fortify genera funciona fuera del cuadro con cualquier aplicación.

Consideraciones de implementación

1. Pantalla de código QR frontend: al habilitar 2FA, Fortify generalmente genera un código QR basado en la clave secreta. Este código QR puede ser escaneado por Authy o Google Authenticator Apps. Su frontend solo necesita representar este código QR, y el usuario puede elegir su aplicación preferida. No se necesitan cambios en el código de backend.

2. Paso de confirmación: un problema a veces encontrado con Laravel Fortify es que habilitar 2FA sin confirmar el código ingresado puede bloquear a los usuarios si no completan la configuración correctamente. Implementar un paso de confirmación en el que el usuario ingrese un código generado por Authy (o Google Authenticator) después de escanear el código QR es una mejor práctica. Esto se aplica independientemente de la aplicación de autenticación utilizada.

3. Códigos de recuperación: Fortify proporciona códigos de recuperación para 2FA Bypass si el usuario pierde acceso a su aplicación de autenticador. Estos códigos funcionan independientemente de la elección de la aplicación (Authy o Google Authenticator).

Resumen de las diferencias desde la perspectiva del usuario

- Authy VENTAGAS: **
- Soporte de múltiples dispositivos y sincronización automática de tokens 2FA.
- Las copias de seguridad de la nube encriptadas para evitar perder tokens en la pérdida del dispositivo.
- PIN opcional y seguridad biométrica para la aplicación.
- Soporte de la aplicación de escritorio y navegador (aunque algunas aplicaciones de escritorio se suspendieron a principios de 2024).
- Autenticación basada en empuje (aunque no TOTP estándar, más relevante para otras implementaciones).

- Ventajas de Google Authenticator: **
- Más ampliamente conocido y respaldado por muchos servicios.
- Aplicación más simple, infraestructura de respaldo menos compleja (sin cuentas, sin copias de seguridad).
- completamente fuera de línea después de la configuración inicial (sin copias de seguridad de la nube).

Desde un punto de vista de integración de Laravel Fortify, estas diferencias no son consecuencias ya que los códigos TOTP de cualquiera de las aplicaciones se validan de la misma manera por Fortify.

Notas adicionales sobre el uso de Fortify

Laravel Fortify no proporciona vistas frontend o UI; Proporciona servicios de backend para la autenticación. Muchos desarrolladores usan Fortify con Laravel Jetstream u otros kits de interfaz de usuario. Independientemente de la interfaz de usuario, la clave es que Fortify genera el secreto 2FA y valida los códigos, dejando la opción de la aplicación Authenticator al usuario.

Si se necesita personalización para mejorar la recuperación de la cuenta UX o manejar mejor (agregar un indicador "Two_Factor_Confirmed", personalizar vistas, etc.), se puede implementar en la capa Fortify, pero es independiente de la elección entre Authy y Google Authenticator.

Conclusión

Sí, puede usar Authy en lugar del autenticador de Google en Laravel Fortify sin necesidad de cambios en su implementación de backend 2FA. Ambas aplicaciones usan el mismo estándar TOTP totalmente compatible con Fortify. Elegir Authy puede ofrecer funciones mejoradas de usabilidad y respaldo para sus usuarios, especialmente en escenarios de pérdida de dispositivos o acceso a múltiples dispositivos, pero desde el punto de vista del desarrollador de Laravel, la integración sigue siendo la misma. Los usuarios simplemente escanean el código QR proporcionado por Fortify con su aplicación preferida para configurar 2FA.

Esta flexibilidad es por diseño, lo que permite que Laravel Fortify funcione con cualquier aplicación que genere códigos TOTP estándar, incluidos, entre otros, Google Authenticator, Authy, Microsoft Authenticator y otros.