Portal de autoservicio de cuentas con PWM

De todos es conocidos la guerra que pueden dar los usuarios con sus cuentas de usuario, que si se han ido de vacaciones y se les ha olvidado la contraseña, que si te juro que la he escrito 5 veces bienBueno, pues hoy tenemos un documento top, un portal web de autogestión de cuentas de usuario.

Para evitar pérdidas de tiempo en IT es bueno delegar ciertas tareas en los usuarios, y la gestión de sus credenciales es una de ellas, a parte de quitar un % importante del tiempo de nuestros recursos, también perdemos eficiencia ya que el tiempo de respuesta no será inmediato. Así pues, hoy veremos PWM, un portal web Self-Service para las cuentas de usuario de cualquier LDAP, como pueda ser nuestro Directorio Activo.

Por supuesto PWM es Open Source y tiene cosas muy muy curiosas, nos permitirá granularmente seleccionar las opciones que queremos implementar, como pueda ser, permitir crear cuentas de usuario nuevas, o activar usuarios nuevos, cambiar su contraseña, resetear la contraseña si no se acuerda en base a unas preguntas (u Token mal, TOTP…), integración de para el HelpDesk, actualización de ciertos campos de usuarioEstá disponible en cualquier idioma, el tema del interfaz web es sencillamente personalizable para hacerlo corporativoBastante interesante, así que se lo agradecemos a sus autores y recordar colaborar con la comunidad de la manera que mejor os venga 😉

Como no la instalación se basa en un contenedor de Docker que en un minutito tendremos corriendo. Si necesitas instalar Docker echa un vistazo a la documentación oficial. Nos descargamos ‘pwm-docker-image-2.0.1.tarde https://github.com/pwm-project/pwm/releases, lo cargamos a la máquina con Docker y arrancamos el contenedor:

docker load --input=/tmp/pwm-docker-image-2.0.1.tar
docker run -d --name mipwm -p 8443:8443 pwm/pwm-webapp  -v /config:/home/openservices/pwm-config
sudo docker start mipwm

Configurando PWM,

Abrimos un navegador contra https://DIRECCION_IP_PWM:8443 nos dará la bienvenida a un asistente de configuración, “Next”,

Pulsamos enManual Configurationpara configurarlo,

Aceptamos para salir del asistente básico de configuración.

Nos solicita una contraseña que será la que usemos siempre que queramos entrar a modificar la configuración.

Aceptamos, nos indica que estamos en modo configuración y que podremos loguearnos sin cuentas LDAP, hasta que las configuremos y las validemos.

Así que pulsamos enConfiguration Editor”,

Introducimos la contraseña de configuración,

Y bienvenidos a la configuración, realmente es sencillo de navegar por el menú izquierdo y localizar las opciones que necesitemos. Tenemos varias vistas que ocultarán características Básicas, internedidas o nada.

Lo primero, si lo vamos a integrar con nuestro Directorio Activo, lo seleccionaremos enLDAP Vendor Default Settings”.

Aceptamos el cambio,

Y en menú de configuración de LDAP, tendremos que crear una conexión contra nuestro Directorio Activo, indicaremos el o los servidores LDAP, conectaremos con LDAPS preferiblemente, pulsaremos en obtener el certificado desde el servidor. Después, configuraremos la cuenta llamadaLDAP Proxy Userque será la cuenta de usuario de nuestro AD que usará para cambiar y resetear contraseñas (así que debe ser un usuario con únicamente esa delegación), además indicaremos la (o las) base DN donde estarán nuestros usuarios. Y por último deberemos indicar una cuenta de pruebas para validar que podemos realizar dichos cambios.

Al pulsar enTest LDAP Profilenos validará la conexión.

Para no hacer cambios en el esquema del AD, necesitaremos un servidor de BD de MySQL o MariaDB donde PWM almacenará los atributos que necesite. Este MySQL puede correr en la misma máquina que Docker, en un contenedor o en una máquina dedicada. Con los siguientes comandos crearemos la base de datos, un usuario con una contraseña y le asignaremos permisos al usuario a dicha BD:

CREATE DATABASE pwm_db;
CREATE USER 'pwd_user'@'%' IDENTIFIED BY 'XXXXXXXXXX';
GRANT ALL ON pwm_db.* TO 'pwd_user'@'%';
FLUSH PRIVILEGES;

Así que desdeSettings” > “Database (Remote)” > “Connectiondeberemos conectarnos a ella.

Antes de ello, descargamos mysql-connector-java-8.0.28.zip de https://dev.mysql.com/downloads/connector/j/?os=26, lo descomprimiremos y enDatabase Driversubiremos el fichero JAR (en mi caso mysql-connector-java-8.0.28.jar). EnDatabase Classindicamos: ‘com.mysql.jdbc.Drivery enDatabase Connection Stringponemos: ‘jdbc:mysql://DIRECCION_IP_MYSQL:3306/pwm_db?useTimezone=true&serverTimezone=UTC’. Introducimos los credenciales de acceso enUser Namey enPassword”.

Si pulsamos enTest Database Connectionverificaremos el acceso correcto!

Así que en los Settings predeterminados ya le podremos indicar que usamos como almacenamiento unaRemote Database”.

Aceptamos los cambios,

Algo que deberemos configurar es qué usuarios son administradores de PWM.

Así como cuál será la URL del Sitio.

O la configuración del servicio de correo para el envío de mails de validación a los mails de los usuarios.

Y le damos aSavepara guardar la configuración & “Aceptar”,

Si ha ido todo bien, podremos probar a loguearnos con la cuenta administrativa que hayamos indicado, siendo un usuario del Directorio Activo.

Perfecto, tras loguearnos veremos que unicamente tenemos el palen de Administración habilitado, y no se ven las funciones de usuario, esto es por que todavía seguimos en el modo de configuración. Pulsamos en Administración.

Nos llevará a este sitio donde podremos curiosear e investigar la actividad de los usuarios

Total, que si pulsamos enConfiguration Manager”,

Introducimos la contraseña de acceso a la Configuración.

Y para poner en producción el sitio pulsaremos enRestrict Configuration”.

Nos indica que tenemos que estar seguros de habernos validado con nuestro Directorio Activo para validarlo, “Aceptar”,

E inmediatamente el sitio se pone en producción, al estar logueados con un usuario de Directorio Activo, aunque seamos el administrador del Sitio PWM podremos ya cumplimentar las preguntas de seguridad.

Si vamos al menú principal este sería, a diferencia de un usuario normal que no vería el icono con las funciones administrativas.

Accediendo como un usuario normal de Directorio Activo,

Podemos loguearnos con un usuario normal del Active Directory para validar

Nos solicitaría el cumplimiento de las respuestas a las preguntas de seguridad.

Nos indica que nos servirán a futuro si olvidamos nuestra contraseña.

Y un usuario tradicional es lo que vería por defecto. Insisto se pueden añadir funcionalidades para que actualice datos de su cuenta, pueda realizar busquedas de otros usuarios, configurar un OTP

Qué pasa cuando se olvida una contraseña,

Si pulsamos enContraseña olvidada”,

Nos saldrá un asistente que solicitará que especifiquemos nuestro nombre de usuario.

Y obviamente, saldrán las preguntas que una vez cumplimentamos. Con ello el usuario podrá restablecerse su contraseña en caso de olvido. Además podemos requerir otros métodos de autenticación como un Token o una verificación por mail.

Habilitando nuevos registros de usuarios,

Veremos en los Módulos que tenemos distintas opciones que podremos ir habilitando en el portal público, o en el portal tras su autenticación. En este ejemplo sencillo vemos cómo habilitarNew User Registration”,

E indicamos enCreation Contextla OU donde se almacenarán estas cuentas.

Pulsamos en SAVE para guardar la configuración.

Y lo validamos, vemos cómo ya tenemos un nuevo botón que podrían pulsar para registrar nuevos usuarios.

Habilitar OTP,

Veremos cómo habilitar un Token para usarlo como un segundo método de validación en alguna situación que nos interese. Ojo, por ahora PWM no permite requerirlo para hacer el logon de los usuarios, pero sí para cuando realiza algún cambio en su cuenta, peeero no para cambiarse la contraseña una vez logueado¿?

Habilitamos OTP y opcionalmente podremos forzarlo o no.

Verificamos que las claves de OTP se almacenarán en la base de datos y de manera cifrada. Grabamos los cambios.

Y veremos cuando nos logueemos con un usuario un icono nuevo para configurarse el Token,

Si pulsamos saldrá un asistente donde nos indicará dependiendo del dispositivo que usemos unas instrucciones, el usuario escaneará el código QR y finalizará el asistente validando el código.

Personalizando el tema,

No podiamos cerrar el post sin esto, pero por defecto PWM dispone de varios temas que son bastante más modernos que el interfaz clásico. Podremos seleccionar el que más nos guste y modificar manualmente el fichero CSS. Si bien es cierto que dispone un punto de menú para esta funcionalidad yo particularmente copio el CSS y la imagen de fondo cuando el contenedor arranca.

Nada, os dejo a modo ejemplo algunos pantallazos con el tema modificado, colores corporativosesta sería la web de inicio.

Este sería el portal una vez el usuario se haya autenticado.

Respondiendo a las preguntas cuando se te olvida la contraseña….

Bueno, ¿listo? creo que para hacernos una idea nos puede servir, PWM es una herramienta que puede ayudarnos mucho cuando esta gestión es una pesadilla o lo dicho, requiere que le dediquemos un tiempo desde IT. Es bueno disponer de un portal para que nuestros usuarios, clientes o proveedores puedan gestionarse los credenciales de una manera independiente.

Ale, un abrazo a todos, gracias si habéis llegado hasta aquí, un arrumaco a todos los que movéis este tipo de contenido por redes sociales. Que vaya bien, ¡éxitos!

Posts recomendados

Autor

nheobug@bujarra.com
Autor del blog Bujarra.com Cualquier necesidad que tengas, no dudes en contactar conmigo, os intentare ayudar siempre que pueda, compartir es vivir ;) . Disfrutar de los documentos!!!