La autenticación de dos factores es un medio para identificar a un usuario a través de dos piezas de información o identificación separadas. Para su sitio en Drupal, estas dos partes son la contraseña de su cuenta y una contraseña de un solo uso generada mediante un autenticador móvil de terceros. Al combinar pruebas de identidad -que es poco probable que posea un usuario no autorizado- la autenticación de dos factores proporciona un mayor nivel de seguridad para los usuarios de su sitio web.
El módulo Two-factor Authentication (TFA)
Para configurar la autenticación en dos pasos en un sitio en Drupal, contamos con el módulo Two-factor Authentication (TFA) el cual funciona como módulo base, es decir por sí solo no nos ofrece una autenticación en dos pasos sino que provee una serie de interfaces que permiten conectar un método de autenticación en dos pasos con Drupal.
El módulo TFA se puede instalar como otros módulos de Drupal colocando el directorio del módulo en el sistema de archivos de Drupal (por ejemplo, en sites/all/modules)
Two-factor Authentication (TFA) | Drupal.org
O usando composer (recomendado)
composer require drupal/tfa
Muy importante, asegúrese de estar ejecutando Drupal sobre PHP 7.4 o superior ya que de lo contrario lanzará un error muy extraño que en mi caso me tomó varias horas determinar la causa.
Una vez descargado, habilítalo en la página de módulos de Drupal.
El módulo Google Authentication login
Como lo mencioné anteriormente, el módulo TFA solo nos crea unas interfaces que permiten a otros módulos gestionar la autenticación de dos factores en particular que ofrezcan, ese es el caso del módulo Google Authenticator login.
Este módulo que funciona como complemento del módulo TFA permite que podamos hacer uso de la herramienta para la gestión de autenticación en dos pasos de Google llamada Authenticator.
Seguramente para algunos usuarios que tienen cuentas de gmail les puede resultar familiar ya que es la misma herramienta que usan para la autenticación en dos pasos para sus cuentas.
El módulo se puede instalar como otros módulos de Drupal colocando el directorio del módulo en el sistema de archivos de Drupal (por ejemplo, en sites/all/modules)
Google Authenticator login | Drupal.org
O usando composer (recomendado)
composer require drupal/ga_login
Una vez descargado, habilítalo en la página de módulos de Drupal.
Los módulos Encrypt y real AES
Para la configuración vamos a requerir un método de cifrado que nos permita guardar nuestra llave de forma segura en el sistema, por eso requerimos instalar el módulo Encrypt el cual nos provee un API para realizar cifrados simétricos y asimétricos.
Real AES por su lado, es un módulo que provee un método de cifrado AES para el módulo Encrypt usando CBC
Ambos módulos pueden ser descargados desde sus páginas de proyecto en drupal.org
O usando composer (recomendado)
composer require drupal/encrypt
composer require drupal/real_aes
Configuración de llave de cifrado
Una vez tengamos todos los módulos necesarios descargados e instalados, lo primero que necesitamos hacer es agregar un perfil, para eso vamos a Configuración -> Sistema -> Encryption Profiles
O también podemos llegar por la siguiente ruta
/admin/config/system/encryption/profiles/add
Una vez ahí, ingresamos un nombre para la llave, ingrese un nombre legible y de fácil identificación, por ejemplo el nombre de su sitio.
En Type Settings seleccione el tipo como Encryption y en Size 256
Más abajo debemos agregar el valor de llave de cifrado, esta llave debe ser de 256bits, podemos generarla con alguna herramienta o puede usar en línea como la que les comparto en el siguiente enlace:
Encryption Key Generator (acte.ltd/utils/randomkeygen)
Al momento de generar la llave, asegúrese de que esté seleccionado en 256-bit
El valor generado en el campo de texto será el valor a usar en el campo key value.
Configuración de Autenticación en dos pasos
Ahora nos corresponde la configuración de la autenticación en dos pasos que vamos a usar.
Dirijase a Usuarios -> Verificación en dos pasos.
O a la ruta /admin/config/people/tfa
Habilitela
En los complementos a utilizar, habilite el ingreso con GA login basado en tiempo que es que corresponde a Google Authenticator y el de código de recuperación que nos servirá para generar códigos que podemos guardar en caso que perdamos el acceso al Google Authenticator.
En las configuraciones Adicionales en el número de códigos aceptados escriba 2, en el Emisor escriba un nombre corto como “Mi sitio” o algo así que le permita identificar al usuario en la aplicación móvil el sitio al que corresponde el código.
En el perfil de cifrado, seleccione el perfil que creó en el paso anterior.
En saltar validación defina el valor en 3.
Los siguientes valores los puede dejar por defecto o ajustarlos a como se ven en la imagen
En la parte final podrá ver unos mensajes que se le enviarán al usuario por correo una vez finalice el proceso de configuración, asegúrese de que estén en el idioma de su sitio o ajuste según le convenga.
Finalmente, guarde la configuración.
De esta forma hemos finalizado la configuración del módulo y cada usuario podrá habilitarla desde su panel administrativo.
Note que no configuramos la opción que hace obligatorio el uso de la autenticación en dos pasos a los usuarios dentro de los roles seleccionados, esto lo hacemos así a fin de no bloquear las cuentas de los usuarios cuando aún no las han configurado, un vez usted esté seguro que todos los usuarios la han configurado es recomendable configurar esta opción.
Cómo habilitarla (Como usuario)
- En su dispositivo móvil descargue la aplicación Google Authenticator
a. Para Android haga clic en este enlace.
b. Para iOS haga clic en este enlace.
2. Ingrese a su cuenta en su sitio Drupal como normalmente lo hace.
3. En la barra administrativa superior haga clic sobre su nombre de usuario, este desplegará una barra con opciones, haga clic en Editar perfil
4. En las opciones que verá, haga clic en Seguridad
5. En la primera opción para habilitar la Aplicación para autenticación de dos factores Haga clic en configurar aplicación.
6. Ingrese la contraseña de su cuenta, esta se solicita nuevamente por seguridad, posteriormente presione el botón Confirmar.
7. Ahora verá una página donde podrá ver entre otras cosas un código QR. Abra la aplicación Google Authenticator en su dispositivo móvil, podrá ver una interfaz similar a la imagen que verá a continuación, como en esa imágen, presione la el ícono + para agregar y seleccione Escanear un código QR.
8. Escanee el código QR y se generará aleatoriamente un código 2FA de 6 dígitos dentro de su APLICACIÓN Google Authenticator. Ingrese el código de 6 dígitos generado en su Autenticador de Google y haga clic en ingresar y verificar, asegúrese de ingresar el código antes de que finalice el indicador regresivo de la derecha.
9. Al finalizar y si todo ha salido bien verá un mensaje de confirmación en un franja verde e información adicional más abajo de la fecha en que fue habilitada la opción, también recibirá un mensaje a su dirección de correo confirmando que ha habilitado la opción.
10. Ahora note que más abajo está la opción Códigos de recuperación, vamos a configurar también esta opción para generar unos códigos fijos que podemos usar a futuro en caso que perdamos el acceso a la aplicación o si por algún motivo no funciona ese método. haga clic en Generar códigos.
11. Nuevamente solicitará la contraseña, ingrésela y presione Confirmar
12. Note que se ha generado una lista de códigos, copielos y guardelos en un lugar seguro, de tal forma que en caso que los necesite pueda recurrir a ellos. Finalmente presione el botón Guardar códigos en la cuenta
13.Nuevamente verá la confirmación en la franja verde, y verá qué también le queda habilitada la opción para ver los códigos que se han generado o para reestablecerlos con esto hemos finalizado.
Cómo usarla (Como usuario)
Una vez habilitada la verificación en dos pasos, cada vez que ingrese al sitio web después de ingresar como normalmente lo hace, ahora verá un paso adicional donde le solicitará el código de verificación de la aplicación.
- Abra la aplicación Google Authenticator en su dispositivo móvil
- Ubique el registro para el sitio e ingrese el código en el campo, presione el botón Verificar
3. Note que en caso que no tenga la aplicación o le esté fallando, puede usar los códigos generados haciendo clic en Código de recuperación de la verificación en dos factores.
Problemas conocidos:
Si En algún punto de la configuración le aparece algo como el siguiente mensaje, es porque necesita php 7.4
Parse error: syntax error, unexpected 'SettingsContainerInterface'
(T_STRING), expecting function (T_FUNCTION) or const (T_CONST) in C:\laragon\www\testeqrcode_php\vendor\chillerlan\php-qrcode\src\QRCode.
php on line 153
Esperamos que esta explicación en la instalación, configuración y uso de la autenticación en dos factores para Drupal le haya sido de utilidad.