PWM es una aplicación de autoservicio de contraseñas de código abierto para directorios LDAP.
La página oficial del proyecto está en https://github.com/pwm-project/pwm/.
PWM es una aplicación basada en Servlet Java y está empaquetada como un archivo JAR único ejecutable de Java, un archivo "WAR" de Servlet tradicional y una imagen acoplable.
Requisitos mínimos para la aplicación PWM.
Versión PWM | Java [^1] | Servlet | Gato [^2] |
---|---|---|---|
v2.1.x | 17+ | 3.0 | 9 |
v2.0.x | 11+ | 3.0 | 8-9 |
v1.9.x (EOL) | 8-11 | 3.0 | 7-9 |
[^1] No hay ningún requisito para una implementación de Java específica, las compilaciones de PWM utilizan Adoptium.
[^2] Tomcat no es un requisito explícito, pero es el contenedor más común utilizado con PWM y el que se utiliza para las compilaciones de Docker y Onejar.
PWM se distribuye en los siguientes artefactos, puede utilizar el que le resulte más conveniente.
Artefacto | Descripción |
---|---|
Ejecutable de Java | Aplicación Java JAR ejecutable por línea de comandos, incluye Tomcat. |
GUERRA | Para el modelo de implementación de aplicaciones Java WAR (Web Archive) estándar, debe tener una configuración de Java y Tomcat que funcione en su servidor. |
Estibador | La imagen de Docker incluye Java y Tomcat. |
Para todos los tipos de implementación, cada instancia de PWM necesitará un directorio applicationPath definido en su servidor local para los archivos de configuración, registro y tiempo de ejecución de PWM. Una vez que se configura PWM, la interfaz de usuario web inicial solicitará al administrador LDAP y otras configuraciones de configuración.
El artefacto 'onejar' lanzado con PWM tiene una instancia de Tomcat incorporada, por lo que no es necesario instalar Tomcat para usar esta versión. Es ideal para probar y evaluar PWM. Usted será responsable de ejecutarlo como un servicio (si lo desea).
Requisitos:
Ayuda:
java -version
para garantizar que tenga java 11 o superior disponiblejava -jar pwm-onejar-2.0.0.jar
para obtener ayuda con la línea de comandosEjemplo para ejecutar el ejecutable onejar (siendo /pwm-applicationPath la ubicación de su directorio applicationPath ):
java -jar pwm-onejar-2.0.0.jar -applicationPath /pwm-applicationPath
De forma predeterminada, el ejecutable permanecerá conectado a la consola y escuchará las conexiones HTTPS en el puerto 8443.
Pasos:
La imagen de la ventana acoplable PWM incluye Java y Tomcat. Escucha usando https en el puerto 8443 y tiene un volumen expuesto como /config
. Deberá asignar el volumen /config
a algún tipo de volumen acoplable persistente para que PWM conserve la configuración.
Requisitos:
Pasos:
docker load --input=pwm-docker-image-v2.0.0.tar
docker create --name mypwm -p '8443:8443' --mount 'type=bind,source=/home/user/pwm-config,destination=/config' pwm/pwm-webapp
docker start mypwm
Antes de configurar PWM, debe utilizar un navegador/editor LDAP para garantizar la funcionalidad esperada de su entorno LDAP. La mayoría de las dificultades encontradas al configurar PWM se deben a problemas de configuración de LDAP o a la falta de familiaridad con LDAP. Hay muchos navegadores LDAP disponibles, uno común es Apache Directorry Studio. Utilice el navegador para navegar por su entorno LDAP, familiarizarse con la estructura del directorio y verificar el comportamiento esperado.
En particular, LDAP de Active Directory puede ser problemático porque a menudo está mal configurado y se comporta de manera inusual en comparación con otros directorios LDAP. Específicamente, AD LDAP utiliza referencias para redirigir el cliente LDAP (PWM en este caso) a los servidores de su elección, por lo que PWM debe poder comunicarse con todas las instancias del servidor del controlador de dominio en el entorno AD utilizando el nombre DNS configurado por AD. AD LDAP también debe configurarse para utilizar certificados SSL para que funcionen las modificaciones de contraseña. Sin embargo, si el entorno AD está bien configurado, PWM funcionará bien con él.
PWM incluye un editor de configuración basado en web. Cuando PWM se inicia sin configuración, una guía de configuración basada en web solicitará al administrador información de configuración básica. Toda la información de configuración se almacena en el archivo PwmConfiguration.xml , que se creará en el directorio de ruta de la aplicación. La ruta de la aplicación también se usa para otros archivos, incluida una base de datos local ( LocalDB ) (usada principalmente como caché o para entornos de prueba), archivos de registro y archivos temporales. Si se utilizan varios servidores PWM en paralelo, cada servidor debe tener archivos PwmConfiguration.xml idénticos.
PWM utiliza una contraseña de configuración para proteger cualquier modificación de la configuración. La autenticación en PWM requiere un inicio de sesión respaldado por LDAP en una cuenta administrativa configurada. En la configuración inicial o en casos de problemas con el directorio LDAP, puede ser necesario acceder a la configuración cuando LDAP no esté disponible funcionalmente. Para este propósito, PWM tiene un "modo de configuración" que permite editar la configuración con la contraseña de configuración, pero desactiva todas las demás funciones del usuario final. El modo de configuración se puede habilitar/deshabilitar editando el archivo PwmConfiguration.xml y cambiando la propiedad configIsEditable
cerca de la parte superior del archivo, y también se puede cambiar en la interfaz de usuario web.
PWM se puede configurar opcionalmente con un RDBMS (también conocido como servidor de base de datos SQL). Cuando se configura para usar una base de datos, los metadatos del usuario de PWM, como respuestas de desafío/respuesta, tokens TOTP, registros de uso y otros datos, se almacenarán en la base de datos. Cuando no está configurado para usar una base de datos, los metadatos del usuario PWM se almacenarán en el directorio LDAP. Ninguno es mejor ni peor, cuál uses depende de tu entorno.
Cualquier servidor SQL que tenga un controlador JDBC compatible con Java debería funcionar, PWM creará su propio esquema en la primera conexión.
Construir requisitos previos:
Pasos de construcción:
Ejemplo de Linux:
export JAVA_HOME="/home/vm/JavaJDKDirectory"
git clone https://github.com/pwm-project/pwm
cd pwm
./mvnw clean verify
Ejemplo de Windows:
set JAVA_HOME="c:JavaJDKDirectory"
git clone https://github.com/pwm-project/pwm
cd pwm
mvnw.cmd clean verify
En Windows recomendamos utilizar rutas sin espacios tanto para el directorio PWM como para el JDK.
Artefactos creados:
Formato | Directorio |
---|---|
GUERRA | aplicación web/destino |
Ejecutable | un frasco/objetivo |
Estibador | ventana acoplable/objetivo |