PWM est une application libre-service de mot de passe open source pour les annuaires LDAP.
La page officielle du projet se trouve sur https://github.com/pwm-project/pwm/.
PWM est une application basée sur un servlet Java et est conditionnée sous la forme d'un fichier JAR unique exécutable Java, d'un fichier "WAR" de servlet traditionnel et d'une image Docker.
Exigences minimales pour l'application PWM.
Version MLI | Java[^1] | Servlet | Tomcat [^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] Aucune implémentation Java spécifique n'est requise, les versions PWM utilisent Adoptium.
[^2] Tomcat n'est pas une exigence explicite, mais c'est le conteneur le plus couramment utilisé avec PWM, et celui qui est utilisé pour les versions Docker et Onejar.
PWM est distribué dans les artefacts suivants, vous pouvez utiliser celui qui vous convient le mieux.
Artefact | Description |
---|---|
Exécutable Java | Application Java JAR exécutable en ligne de commande, inclut Tomcat. |
GUERRE | Modèle de déploiement d'application Java WAR (Web Archive) standard, vous devez disposer d'une configuration Java et Tomcat fonctionnelle sur votre serveur. |
Docker | L'image Docker inclut Java et Tomcat. |
Pour tous les types de déploiement, chaque instance PWM aura besoin d'un répertoire applicationPath défini sur votre serveur local pour les fichiers de configuration, de journal et d'exécution de PWM. Une fois PWM configuré, l’interface utilisateur Web initiale demandera à l’administrateur LDAP et d’autres paramètres de configuration.
L'artefact 'onejar' publié avec PWM possède une instance Tomcat intégrée, vous n'avez donc pas besoin d'installer Tomcat pour utiliser cette version. Il est idéal pour tester et évaluer le PWM. Vous serez responsable de le faire fonctionner en tant que service (si vous le souhaitez).
Exigences:
Aide:
java -version
pour vous assurer que vous disposez de Java 11 ou supérieurjava -jar pwm-onejar-2.0.0.jar
pour l'aide en ligne de commandeExemple d'exécution de l'exécutable onejar (avec /pwm-applicationPath étant l'emplacement de votre répertoire applicationPath ) :
java -jar pwm-onejar-2.0.0.jar -applicationPath /pwm-applicationPath
Par défaut, l'exécutable restera attaché à la console et écoutera les connexions HTTPS sur le port 8443.
Mesures:
L'image Docker PWM inclut Java et Tomcat. Il écoute en utilisant https sur le port 8443 et son volume est exposé sous la forme /config
. Vous devrez mapper le volume /config
à un certain type de volume Docker persistant pour que PWM conserve la configuration.
Exigences:
Mesures:
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
Avant de configurer PWM, vous devez utiliser un navigateur/éditeur LDAP pour garantir les fonctionnalités attendues de votre environnement LDAP. La plupart des difficultés rencontrées lors de la configuration de PWM sont dues à des problèmes de configuration LDAP ou à une méconnaissance de LDAP. Il existe de nombreux navigateurs LDAP disponibles, le plus courant étant Apache Directrory Studio. Utilisez le navigateur pour naviguer dans votre environnement LDAP, vous familiariser avec la structure des répertoires et vérifier le comportement attendu.
En particulier, Active Directory LDAP peut poser problème car il est souvent mal configuré et se comporte de manière inhabituelle par rapport aux autres annuaires LDAP. Plus précisément, AD LDAP utilise des références pour rediriger le client LDAP (PWM dans ce cas) vers les serveurs de son choix. PWM doit donc pouvoir contacter toutes les instances de serveur de contrôleur de domaine dans l'environnement AD en utilisant le nom DNS configuré par AD. AD LDAP doit également être configuré pour utiliser des certificats SSL pour que les modifications de mot de passe fonctionnent. Cependant, si l’environnement AD est bien configuré, PWM fonctionnera correctement.
PWM comprend un éditeur de configuration basé sur le Web. Lorsque PWM démarre sans configuration, un guide de configuration Web demandera à l'administrateur des informations de configuration de base. Toutes les informations de configuration sont stockées dans le fichier PwmConfiguration.xml , qui sera créé dans le répertoire du chemin de l'application. Le chemin de l'application est également utilisé pour d'autres fichiers, notamment une base de données locale ( LocalDB ) (utilisée principalement comme cache ou pour les environnements de test), des fichiers journaux et des fichiers temporaires. Si plusieurs serveurs PWM sont utilisés en parallèle, chaque serveur doit avoir des fichiers PwmConfiguration.xml identiques.
PWM utilise un mot de passe de configuration pour protéger toute modification de la configuration. L'authentification auprès de PWM nécessite une connexion basée sur LDAP à un compte administratif configuré. En début d'installation ou en cas de problèmes avec l'annuaire LDAP, il peut être nécessaire d'accéder à la configuration lorsque la fonctionnalité LDAP n'est pas disponible. À cette fin, PWM dispose d'un "mode de configuration" qui permet de modifier la configuration avec le mot de passe de configuration, mais désactive toutes les autres fonctionnalités de l'utilisateur final. Le mode de configuration peut être activé/désactivé en modifiant le fichier PwmConfiguration.xml et en modifiant la propriété configIsEditable
en haut du fichier. Il peut également être modifié dans l'interface utilisateur Web.
PWM peut éventuellement être configuré avec un SGBDR (également appelé serveur de base de données SQL). Lorsqu'elles sont configurées pour utiliser une base de données, les métadonnées utilisateur PWM telles que les réponses aux défis/réponses, les jetons TOTP, les enregistrements d'utilisation et d'autres données seront stockées dans la base de données. Lorsqu'elles ne sont pas configurées pour utiliser une base de données, les métadonnées utilisateur PWM seront stockées dans l'annuaire LDAP. Ni l’un ni l’autre n’est meilleur ou pire, celui que vous utilisez dépend de votre environnement.
Tout serveur SQL doté d'un pilote JDBC pris en charge par Java devrait fonctionner, PWM créera son propre schéma lors de la première connexion.
Construire les pré-requis :
Étapes de construction :
Exemple Linux :
export JAVA_HOME="/home/vm/JavaJDKDirectory"
git clone https://github.com/pwm-project/pwm
cd pwm
./mvnw clean verify
Exemple Windows :
set JAVA_HOME="c:JavaJDKDirectory"
git clone https://github.com/pwm-project/pwm
cd pwm
mvnw.cmd clean verify
Sous Windows, nous vous recommandons d'utiliser des chemins sans espaces pour les répertoires PWM et JDK.
Artefacts créés :
Format | Annuaire |
---|---|
GUERRE | application Web/cible |
Exécutable | un pot/cible |
Docker | docker/cible |