Autenticación en dos pasos (2FA)
¿Para qué sirve?
Le suma un segundo requisito al inicio de sesión del panel: además del correo y la contraseña, la persona escribe un código de 6 dígitos que su aplicación de autenticación (Google Authenticator, Authy, 1Password, Bitwarden, Microsoft Authenticator, la que use) muestra en su teléfono. El código cambia cada 30 segundos y sólo lo genera esa app.
Si a alguien se le filtra la contraseña, el atacante tampoco entra: le falta el teléfono. Es la misma protección que usan Google, tu banco o Notion, sin depender de que llegue un SMS ni de que un servicio externo te la valide.
¿Cuándo lo necesitas?
Siempre que el panel tenga datos que importan. En particular:
- Cuentas de administración que pueden borrar, cambiar precios, descargar toda la base o firmar documentos.
- Instalaciones con muchas personas — cuando hay 20 usuarios, la probabilidad de que uno reciba un phishing es alta; el 2FA convierte eso en un susto, no en un incidente.
- Cumplimiento normativo — si el rubro exige "control de acceso con doble factor" (salud, financiero, protección de datos), acá está el chequeo.
Si sos una sola persona probando el CMS en tu escritorio, puedes saltearlo. Igual en producción, prendelo.
Cómo activarlo
- Entra a Configuración → Módulos y activa Autenticación en dos pasos. La sección aparece en el menú bajo Configuración. Las tablas se crean solas la primera vez.
- Dale acceso a la sección al rol de quien va a gestionar la política,
en Roles y Permisos. Por defecto sólo los roles
superadminyadminla administran.
El segundo factor solo se pide cuando la sección está activada. Una instalación que no la agregó sigue entrando como siempre, con correo y contraseña.
Al activarla rige la política por defecto: las cuentas que no tienen un rol asignado —la del proveedor, por ejemplo— deberán configurar su app la próxima vez que entren. Ten el teléfono a mano.
Configuración inicial
Todo lo haces desde Configuración → Autenticación en dos pasos, en tres pestañas.
1. Política por rol
La política se define por rol, nunca por persona. La pestaña muestra una fila por cada rol de Roles y Permisos, más una primera fila, Cuentas sin rol asignado, para quien no tiene ninguno (la cuenta del proveedor, por ejemplo). Cada fila tiene un interruptor:
- Obligatorio — nadie con este rol entra al panel sin su código. La primera vez que entre, el sistema le muestra el QR para configurar la app. El cambio se guarda al tocar el interruptor.
Si un rol no es obligatorio, quien lo lleve puede entrar solo con su contraseña; pero si ya configuró la app, el código se le pide siempre.
Al instalar el módulo, Cuentas sin rol asignado queda como obligatorio y los demás roles no. Si quieres que el rol Administrador también lo use, enciéndelo en su fila.
2. Personas
Lista con todas las cuentas activas del CMS y el estado del 2FA de cada una:
- Activo — configuró la app y el sistema ya validó el primer código.
- Pendiente — empezó el proceso pero no confirmó el primer código aún.
- Sin configurar — nunca activó 2FA.
- Reseteado — un administrador lo restableció; su próximo login vuelve a la pantalla de configuración.
Al lado de cada persona con 2FA activo aparece un botón Restablecer. Se usa cuando alguien perdió el teléfono: la borra del sistema y en su siguiente login vuelve a escanear el QR.
La cuenta con la que el proveedor administra la instalación no se lista ni se puede restablecer desde esta pantalla: restablecer su segundo factor sería el primer paso para quedarse con ella. Solo el proveedor la ve.
3. Actividad
El registro completo de eventos: quién activó 2FA, quién falló un código, quién fue reseteado, con IP y fecha. Sirve para auditar y para ver si alguien está intentando entrar sin éxito.
Cómo se usa día a día
Después del setup, la vida de un usuario común es corta:
Primera vez (enrolamiento)
- Entra con su email y contraseña como siempre.
- En vez del panel, ve una pantalla con un QR y un código de texto.
- Abre su app de autenticación en el celular, aprieta +, y elige Escanear código QR (o Ingresar código de configuración si prefiere escribir).
- La app agrega la cuenta con el nombre de tu sitio arriba y su email abajo, y muestra un código de 6 dígitos que cambia cada 30 segundos.
- Vuelve a la pantalla del CMS y escribe ese código.
- Listo — entra directo a su pantalla de trabajo (la misma a la que llegaría sin 2FA: una profesional, a su agenda). Su 2FA queda activo.
Siguientes veces
- Entra con email + contraseña.
- La pantalla siguiente pide el código de 6 dígitos actual de la app.
- Lo escribe y entra.
Toma unos 5 segundos extra por día. Es todo lo que cuesta el 2FA.
Si pierde el teléfono
Le pide a cualquier admin del sistema que le restablezca el 2FA desde Configuración → Autenticación en dos pasos → Personas → botón Restablecer. En el próximo login vuelve al paso 1 del enrolamiento.
Esta versión no genera códigos de respaldo (backup codes). Si el usuario pierde el teléfono y no queda ningún administrador con acceso, hay que arreglar el problema por base de datos. Por eso la recomendación es tener al menos dos administradores activos y no compartir cuentas.
Se conecta con
Funciona solo, sin depender de nada. Los roles y permisos de RBAC Manager definen quién puede administrar la sección y a quién se le exige el 2FA. Si no tienes RBAC configurado, la política default protege a los roles legado.
Security Monitor — si lo tienes instalado, los intentos fallidos de 2FA aparecen también en su timeline con las reglas de bloqueo por IP.
Preguntas frecuentes
¿Qué app de autenticación uso? Cualquiera. Las más comunes: Google Authenticator, Microsoft Authenticator, Authy (permite backup en la nube), 1Password, Bitwarden, Aegis. Todas hablan el mismo estándar (TOTP RFC 6238).
¿Tengo que pagar algo o instalar algo raro? No. Las apps son gratis y el código lo genera el teléfono sin conexión a internet.
¿El código de 6 dígitos viaja por internet? Sí, cuando lo escribís se envía a tu propio panel. Pero cambia cada 30 segundos y una vez usado no vale más: aunque alguien lo intercepte, no puede reusarlo.
¿Y si mi celular está apagado o sin batería? No entras. Por eso conviene tener al menos dos administradores activos: uno resetea al otro cuando pasa algo.
¿Se puede activar sólo para algunos usuarios? Sí, pero se decide por rol — no por persona. Si quieres que los recepcionistas no tengan que activar 2FA pero los administradores sí, crea dos roles distintos y ponele Obligatorio sólo al segundo.
¿Qué pasa si el reloj de mi celular está desfasado? Puede fallar. El TOTP tolera hasta ±30 segundos de diferencia; más que eso y la app y el servidor no coinciden. Pon el reloj del teléfono en "Automático" y no vuelve a pasar.
¿Puedo recibir el código por correo en vez de usar la app? No. El código sale de la app del celular, que funciona aunque el correo esté caído o llegue con retraso.
¿Qué sigue?
- Roles y permisos — para definir quién puede administrar el 2FA y qué roles lo tienen obligatorio.