3. Single Sign On
LUCA cuenta con un SSO basado en la herramienta open source Keycloak, denominada internamente LUCA Accounts. Keycloak gestiona la autenticación, la autorización y los usuarios, y permite integrar LUCA con sistemas LDAP, Kerberos, Active Directory u otros proveedores como Google o Microsoft.
Keycloak se organiza en torno a realms (reinos): unidades de configuración independientes que agrupan usuarios, integraciones con sistemas externos y clientes. LUCA Accounts opera con dos realms: master y luca-bds. El primero alberga exclusivamente al usuario administrador de LUCA Accounts; el segundo concentra el resto de elementos: usuarios de LUCA, integraciones con LDAP, clientes, etc.
Acceso a LUCA Accounts
El acceso a la administración del SSO se realiza vía web añadiendo el path /auth/ al final de la URL de LUCA, por ejemplo https://luca.luca-bds.com/auth. La página resultante ofrece acceso directo a la consola de administración de LUCA Accounts, donde se deben introducir las credenciales del administrador.
Figura 3.1: Login administración LUCA Accounts
La web de Keycloak cuenta con la siguiente estructura:
Figura 3.2: Web de Keycloak
Selector de realm (1): Desplegable para cambiar entre realms y acceder a la configuración específica de cada uno. Menú lateral (2): Panel izquierdo que permanece fijo durante toda la navegación. Recoge todos los elementos configurables en el realm activo. Configuración (3): Área central donde se despliegan las pestañas y formularios correspondientes al elemento seleccionado en el menú lateral. En la imagen se muestra la vista general del realm.
Cualquier modificación en la configuración de Keycloak que no esté documentada en este manual puede afectar al funcionamiento de LUCA.
Usuarios
Los usuarios de LUCA son a su vez usuarios de Keycloak. Cuando se crea un usuario desde LUCA, este queda registrado automáticamente en Keycloak sin necesidad de ninguna acción adicional. A la inversa, un usuario dado de alta directamente en Keycloak aparecerá en el área de administración de LUCA tras completar su primer login.
Los usuarios del realm master son independientes a los del realm luca-bds
Para gestionar los usuarios del realm, se accede a Usuarios en el menú lateral y se selecciona el usuario deseado de la lista.
Figura 3.3: Vista de usuarios
Para cada usuario se dispone de las siguientes opciones:
Editar: Abre el formulario de edición del usuario, desde donde se pueden modificar su email, nombre, apellidos, contraseña y otras propiedades. Impersonate: Inicia sesión suplantando la identidad del usuario seleccionado. Útil para verificar in situ que los permisos configurados en LUCA funcionan correctamente. Borrar: Elimina el usuario de Keycloak. No afecta al registro en LUCA.
Cambiar la contraseña de los usuarios
En la ventana de edición del usuario, acceder a la pestaña Credenciales. Pulsar el botón Reset Password para desplegar los campos Contraseña y Confirmar contraseña. La opción Temporal permite exigir al usuario que establezca una nueva contraseña en su próximo login. Confirmar los cambios pulsando Guardar.
Figura 3.4: Cambiar contraseña de un usuario
La contraseña de los usuarios solo se puede cambiar desde Keycloak. Desde LUCA únicamente es posible cambiar la contraseña del propio usuario.
Política de contraseñas
Keycloak ofrece la posibilidad de definir una política de contraseñas común para todos los usuarios. Es posible, por ejemplo, exigir un mínimo de 10 caracteres con al menos una mayúscula y una minúscula. Para acceder a esta configuración, se navega a Autenticación en el menú lateral y se selecciona Política de contraseñas.
Figura 3.5: Política de contraseñas
El desplegable de la derecha muestra todos los tipos de política disponibles, como la caducidad periódica de contraseñas. La referencia completa de opciones está disponible en la documentación oficial de Keycloak.
La imagen siguiente ilustra una configuración de ejemplo: la contraseña no puede coincidir con el nombre de usuario, debe contener al menos una mayúscula y una minúscula, su longitud mínima es de 10 caracteres y caduca cada 180 días.
Figura 3.6: Política de contraseñas
Integración con servicios LDAP y Active Directory
Muchas organizaciones disponen de directorios corporativos basados en LDAP. Keycloak permite federarlos con LUCA Accounts para que los usuarios corporativos puedan autenticarse directamente con sus credenciales habituales.
Para configurar la integración, se accede a Federación de usuarios en el menú lateral y se selecciona la opción Añadir proveedor de ldap en el panel central.
Figura 3.7: Integración con LDAP
El formulario solicita los parámetros de conexión al LDAP: cadena de conexión, atributo utilizado como nombre de usuario, credenciales de integración, etc. Cada campo dispone de un icono de ayuda contextual que describe su propósito al posicionar el cursor sobre él.
Tras completar el formulario, guardar los cambios mediante el botón Guardar al pie de la página.
Figura 3.8: Formulario integración con LDAP