Manual de usuario del módulo TOTP 2FA LOGIN (autenticación de dos-factores) para Dolibarr
14 minutos de lectura
Este módulo ha sido desarrollado por IMASDEWEB, con compatibilidad desde las versiones 8 en adelante de Dolibarr. Permite que los usuarios de tu Dolibarr puedan acceder usando una autenticación de dos factores (Two-Factor-Authentication o 2FA) usando códigos temporales (30 segundos) de 6 dígitos (Time-based On-Time-Password o TOTP) que los usuarios generan con multitud de aplicaciones de celular o de navegador web (Authy, Aegis, Google Authenticator, etc.) porqué de hecho ya es un estándard. Es el complemento definitivo para hacer mucho más seguras tus instalaciones de Dolibarr.
Desde la versión 1.4 se puede filtrar a los visitantes por su país de origen (con una lista blanca de países).
Desde la versión 1.7 ya se puede habilitar el envío del código temporal de 6-dígitos al correo del usuario si este lo requiere desde la página de acceso.
Note: Version française de ce guide.
Nota: english version of this user guide.
Para qué sirve este módulo
Una vez instalado y activado el módulo aparecerá una tercera caja de texto en la página de acceso o login:
Consideraciones para rellenar esta tercera caja:
- Es OPCIONAL responderla: solo será validada si el usuario con el que se trata de acceder ha activado el uso de TOTP 2FA. Para los demás usuarios simplemente se seguirá validando solamente el usuario y la contraseña.
- Ha de ponerse un código de 6 dígitos TOTP de los que se generan desde apps como Aegis (Android) u otras aplicaciones multiplataforma como Authy o Google Authenticator.
- Este sistema de autenticación depende de que tanto el servidor donde está instalado Dolibarr como el dispositivo donde el usuario tiene instalado la app generadora de códigos tengan su reloj interno sincronizado con la hora en internet. Normalmente esto no es exacto, y el código que genera la app va adelantado o atrasado con respecto al del servidor, así que no hay que desperarse si no entramos a la primera. En estos casos prueba a usar el código de acceso al inicio del período de 30 segundos que te da la app, o bien al final. Normalmente te funcionará en uno de los dos extremos. Si no es así, deberás revisar cuál no tiene bien la hora: tu app o tu servidor Dolibarr (normalmente el problema es de la app o de la hora del teléfono donde tengas la app).
ACCESO RECIBIENDO EL CÓDIGO POR CORREO
Esto es posible desde la versión 1.7 (Dic. 2022). Es una alternativa de uso que ha de activar cada usuario que quiera usarlo. Una vez activado para entrar hay que:
- poner el nombre de usuario y contraseña correctos, y dejar en blanco la caja del código
- al pulsar el botón CONEXIÓN el sistema refrescará el formulario de acceso y si las credenciales eran las correctas entonces mostrará un enlace para enviar el correo
- al pulsar dicho enlace el sistema envía el código temporal de 6-dígitos al correo del usuario y se lo confirma por pantalla
- al recibir el correo hay que escribir el código recibido antes de 30 segundos y pulsar el botón CONEXIÓN de nuevo
Obviamente, este mecanismo es también útil para poder acceder cuando uno no tiene acceso al generador TOTp. Pero también será el mecanismo preferido por muchos de tus usuarios, que aún no están acostumbrados a usar una app generadora de códigos TOTp. 😅
Activar la clave TOTP de un usuario
Iremos a nuestra ficha de usuario (nadie puede activarlo por nosotros) y ahí veremos un botón ACTIVAR:
Al pulsarlo el navegador solicitará al servidor una clave TOTP de 16 dígitos y su correspondiente código QR. Debes abrir tu app generadora de códigos y buscar la opción "agregar nueva cuenta". Si es una app de móvil normalmente te dará la opción de "escanear un código QR", pero si no es así, siempre puedes copiar a mano la clave de 16 dígitos:
Para que esta clave quedé VINCULADA A TU USUARIO, debes usar esa app generadora de códigos para tomar tu primer código TOTP y validarlo (ver arriba). Puedes intentarlo tantas veces como sea necesario. Si no pudieras lograr validar ningún código, entonces revisa la configuración horaria de tu dispositivo (o tal vez de tu servidor también, aunque es extraño que un servidor esté "fuera de hora").
Nota: desde la versión 1.7 (Dic.2022) podemos optar por no usar una app generadora de TOTp (o configurarla más adelante), y por mientras usar el correo para recibir el código de 6 dígitos a validar. Como se muestra en la imagen de arriba, tienes un botón para solicitar que el sistema te envíe el código. Recuerda que son códigos temporales de 30 segundos de validez.
Por cierto, ten en cuenta que si usas el envío por correo del código de 6-dígitos de validación se activará la opción de "envío por correo" para siguientes accesos. Aunque esta opción de tu usuario puedes desactivarla o activarla manualmente.
Una vez que consigas validar un código, la clave queda VINCULADA:
A partir de este momento, si tú o alguien trata de acceder con tu usuario y contraseña sin poner un código TOTP correcto, no podrá ya acceder a Dolibarr:
Puedes definir tu propia clave secreta
Especialmente útil para los que administramos varias instancias de Dolibarr es la de poder usar la misma clave secreta en todas esas instancias para el 2FA. Para ello, el módulo lo facilita de la siguiente manera (a partir de la versión 1.2): cuando tratamos de activar el 2FA nos genera un token aleatorio y nos muestra su código QR, como hemos visto arriba. En ese momento debemos pulsar el botón con el lápiz que hay encima del código QR, junto al token generador:
Y así podremos editar a mano la clave secreta:
Al pulsar el botón con el código QR (a su derecha) o al hacer INTRO, el proceso de validación y activación continua como en el caso de arriba:
Consideraciones de seguridad
Ten en cuenta lo siguiente:
- Cada usuario debe activar su clave TOTP de 16 dígitos. Nadie puede hacerlo por él, ni tan siquiera un usuario administrador.
- Los usuarios administradores pueden ver qué usuarios han activado su clave TOTP, pero no pueden conocer la clave en sí. Con esto evitamos riesgos de suplantación de identidad a la hora de acceder a Dolibarr.
- Sin embargo, un usuario administrador sí puede DESACTIVAR la clave TOTP de otros usuarios. Esto se hace así como mecanismo sencillo de desactivación de claves TOTP en caso de que un usuario pierda su clave y necesite acceder para generar otra. Obviamente todos los usuarios pueden cambiar su clave siempre que quieran, mientras tengan acceso al sistema.
Así se ve indica en el Listado de usuarios quienes tiene activada una clave:
Aunque si accede a la ficha de un usuario algún otro usuario (aunque sea administrador) verá la clave semi-ocultada:
Desactivación de la clave TOTP de tu usuario
En cambio, cuando uno va a visitar su propia ficha de usuario, puede ver perfectamente su clave e incluso escanear el código con otras apps:
Para desactivar la clave TOTP activa hay que Modificar mi ficha de usuario:
Nota: de hecho, si un usuario administrador accede a Modificar la ficha de otro usuario también verá el mismo botón DESACTIVAR.
FILTRAR A LOS VISITANTES SEGÚN SU PAÍS DE ORIGEN
Esta mejorea fue introducida con la versión 1.4 y pretende limitar el acceso a tu Dolibarr desde cualquier IP que no esté en el país que tú definas. Y para ello, en la sección de configuración puedes definir una LISTA BLANCA DE PAÍSES.
Obviamente, al visitante que se detecte que viene de otro país no se le va a mencionar el país desde el que tiene que acceder. Pues la idea es ponérselo difícil a los intrusos no deseados y los bots. Es decir, ya solamente esta medida es una barrera interesante para una amplia mayoría de bots de los que andan explorando a lo loco donde meterse. Obviamente, si alguien te dirige un ataque, sabrá como conocer cuál es tu país y usará una VPN para tratar de entrar.
Si dejas en blanco esa lista de países entonces el módulo simplemente no se fijará en la IP de los que tratan de acceder.
Nota técnica: es necesario tener instalado y activado en tu servidor el módulo de PHP mod_geoip (por ejemplo el paquete php7.4-geoip en el caso de PHP 7.4). Si no lo tuvieras instalado, entonces el módulo te lo dirá en esta pestaña de arriba "Configuración IP".
Recordar un dispositivo como seguro
Desde la versión 1.5, el módulo te permite definir un período de tiempo (1 día/semana/mes) durante el cuál recordará tu navegador web y no te pedirá de nuevo el código TOTP de 6 dígitos. También puedes definir que el código TOTP se pida SIEMPRE. De hecho es la opción que viene por defecto.
Aunque es una nueva característica que mejora por mucho la usabilidad de los códigos TOTP, especialmente cuando administras varias instancias de Dolibarr a lo largo de la semana, debes recordar que a MAYOR COMODIDAD tenemos siempre MENOR SEGURIDAD... desafortunadamente son inversamente proporcionales "siempre". Entonces, te recomiendo que evalúes el entorno de seguridad desde el que acceden tus usuarios cuando decidas flexibilizar el uso de los TOTP.
Es más: como este sistema funciona GRACIAS A LAS COOKIES, dejará de funcionar si visitas tu Dolibarr desde una pestaña de incógnito o si eliminas las cookies en tu navegador después de tu visita. Lo cuál te lo recomiendo si no estás en tu máquina, por ejemplo. El módulo puede recordar para un usuario tantos dispositivos como quiera usar. Así que por acceder momentáneamente desde una pestaña de incógnito en un nuevo dispositivo, el módulo no olvidará ninguno de tus otros dispositivos ya usados.
Claro, siempre limitado al tiempo de expiración que definas en la configuración del módulo:
Entonces, ¿cómo debo acceder a Dolibarr ahora?
Si has definido un período de tiempo para recordar dispositivos, entonces mi recomendación es que hagas "login" del siguiente modo:
- escribe tu usuario y contraseña en el formulario de acceso
- pulsa INTRO para enviar el formulario
- si los datos escritos son correctos y no ha expirado tu tiempo de recuerdo entonces ya estás dentro!
- si tu período de recuerdo ya expiró, el formulario de acceso se recargará ya RELLENADO con las credenciales que has puesto y con el cursor ya en la caja del código TOTP de 6 dígitos con un mensaje diciéndote que escribas el código para poder acceder
- introduce el código de 6 dígitos y puedes pulsar INTRO de nuevo para enviar el formulario
- si todos los datos son correctos estarás dentro y el sistema te mostrará el panel de inicio y un mensaje informándote de que tu navegador será recordado por X tiempo
Resumiendo: solamente debes introducir el usuario y la contraseña y pulsar INTRO. Y de vez en cuando (cuando expire el período de recuerdo) se te pedirá el código TOTP de 6 dígitos. Cómodo, ¿no?
Añada su comentario: