PWM ist eine Open-Source-Passwort-Selbstbedienungsanwendung für LDAP-Verzeichnisse.
Die offizielle Projektseite finden Sie unter https://github.com/pwm-project/pwm/.
PWM ist eine Java-Servlet-basierte Anwendung und wird als ausführbare Java-Einzel-JAR-Datei, herkömmliche Servlet-„WAR“-Datei und Docker-Image gepackt.
Mindestanforderungen für die PWM-Anwendung.
PWM-Version | Java [^1] | Servlet | Kater [^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] Es ist keine bestimmte Java-Implementierung erforderlich, PWM-Builds verwenden Adoptium.
[^2] Tomcat ist keine explizite Anforderung, aber es ist der am häufigsten mit PWM verwendete Container und derjenige, der für die Docker- und Onejar-Builds verwendet wird.
PWM ist in die folgenden Artefakte unterteilt. Sie können das am besten geeignete verwenden.
Artefakt | Beschreibung |
---|---|
Ausführbare Java-Datei | Über die Befehlszeile ausführbare Java-JAR-Anwendung, einschließlich Tomcat. |
KRIEG | Für das standardmäßige Anwendungsbereitstellungsmodell Java WAR (Web Archive) benötigen Sie eine funktionierende Java- und Tomcat-Konfiguration auf Ihrem Server. |
Docker | Das Docker-Image enthält Java und Tomcat. |
Für alle Bereitstellungstypen benötigt jede PWM-Instanz ein auf Ihrem lokalen Server definiertes applicationPath- Verzeichnis für die Konfigurations-, Protokoll- und Laufzeitdateien von PWM. Sobald PWM konfiguriert ist, fordert die erste Web-Benutzeroberfläche den Administrator zur Eingabe von LDAP und anderen Konfigurationseinstellungen auf.
Das mit PWM veröffentlichte „onejar“-Artefakt verfügt über eine eingebettete Tomcat-Instanz, sodass Sie Tomcat nicht installieren müssen, um diese Version zu verwenden. Es ist ideal zum Testen und Bewerten von PWM. Sie sind dafür verantwortlich, dass es als Dienst ausgeführt wird (falls gewünscht).
Anforderungen:
Helfen:
java -version
, um sicherzustellen, dass Java 11 oder höher verfügbar istjava -jar pwm-onejar-2.0.0.jar
für BefehlszeilenhilfeBeispiel für die Ausführung der ausführbaren Onejar-Datei (wobei /pwm-applicationPath der Speicherort Ihres applicationPath -Verzeichnisses ist):
java -jar pwm-onejar-2.0.0.jar -applicationPath /pwm-applicationPath
Standardmäßig bleibt die ausführbare Datei mit der Konsole verbunden und wartet auf HTTPS-Verbindungen auf Port 8443.
Schritte:
Das PWM-Docker-Image umfasst Java und Tomcat. Es lauscht über https an Port 8443 und verfügt über ein Volume, das als /config
verfügbar ist. Sie müssen das /config
Volume einem persistenten Docker-Volume zuordnen, damit PWM die Konfiguration beibehält.
Anforderungen:
Schritte:
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
Bevor Sie PWM konfigurieren, sollten Sie einen LDAP-Browser/-Editor verwenden, um die erwartete Funktionalität Ihrer LDAP-Umgebung sicherzustellen. Die meisten Schwierigkeiten bei der Konfiguration von PWM sind auf LDAP-Einrichtungsprobleme oder Unkenntnis von LDAP zurückzuführen. Es stehen viele LDAP-Browser zur Verfügung, ein gängiger ist Apache Directory Studio. Navigieren Sie mithilfe des Browsers in Ihrer LDAP-Umgebung, machen Sie sich mit der Verzeichnisstruktur vertraut und überprüfen Sie das erwartete Verhalten.
Insbesondere Active Directory LDAP kann problematisch sein, da es häufig falsch konfiguriert ist und sich im Vergleich zu anderen LDAP-Verzeichnissen ungewöhnlich verhält. Insbesondere verwendet AD LDAP Verweise, um den LDAP-Client (in diesem Fall PWM) an Server seiner Wahl umzuleiten. Daher muss PWM in der Lage sein, alle Domänencontroller-Serverinstanzen in der AD-Umgebung über den AD-konfigurierten DNS-Namen zu kontaktieren. AD LDAP muss außerdem für die Verwendung von SSL-Zertifikaten konfiguriert sein, damit Kennwortänderungen funktionieren. Wenn die AD-Umgebung jedoch gut konfiguriert ist, funktioniert PWM problemlos damit.
PWM umfasst einen webbasierten Konfigurationseditor. Wenn PWM ohne Konfiguration startet, fordert ein webbasierter Konfigurationsleitfaden den Administrator zur Eingabe grundlegender Konfigurationsinformationen auf. Alle Konfigurationsinformationen werden in der Datei PwmConfiguration.xml gespeichert, die im Anwendungspfadverzeichnis erstellt wird. Der Anwendungspfad wird auch für andere Dateien verwendet, einschließlich einer lokalen Datenbank ( LocalDB ) (hauptsächlich als Cache oder für Testumgebungen verwendet), Protokolldateien und temporären Dateien. Wenn mehrere PWM-Server parallel verwendet werden, muss jeder Server über identische PwmConfiguration.xml- Dateien verfügen.
PWM verwendet ein Konfigurationspasswort, um alle Änderungen an der Konfiguration zu schützen. Für die Authentifizierung bei PWM ist eine LDAP-gestützte Anmeldung bei einem konfigurierten Administratorkonto erforderlich. Bei einer frühen Einrichtung oder bei Problemen mit dem LDAP-Verzeichnis kann es erforderlich sein, auf die Konfiguration zuzugreifen, wenn LDAP funktionell nicht verfügbar ist. Zu diesem Zweck verfügt PWM über einen „Konfigurationsmodus“, der das Bearbeiten der Konfiguration mit dem Konfigurationspasswort ermöglicht, aber alle anderen Endbenutzerfunktionen deaktiviert. Der Konfigurationsmodus kann durch Bearbeiten der Datei PwmConfiguration.xml und Ändern der Eigenschaft configIsEditable
oben in der Datei aktiviert/deaktiviert werden. Er kann auch in der Web-Benutzeroberfläche geändert werden.
PWM kann optional mit einem RDBMS (auch bekannt als SQL-Datenbankserver) konfiguriert werden. Bei der Konfiguration für die Verwendung einer Datenbank werden PWM-Benutzermetadaten wie Challenge/Response-Antworten, TOTP-Tokens, Nutzungsdatensätze und andere Daten in der Datenbank gespeichert. Wenn die Verwendung einer Datenbank nicht konfiguriert ist, werden die Metadaten des PWM-Benutzers im LDAP-Verzeichnis gespeichert. Weder ist besser noch schlechter, welches Sie verwenden, hängt von Ihrer Umgebung ab.
Jeder SQL-Server, der über einen von Java unterstützten JDBC-Treiber verfügt, sollte funktionieren. PWM erstellt bei der ersten Verbindung ein eigenes Schema.
Bauvoraussetzungen:
Schritte erstellen:
Linux-Beispiel:
export JAVA_HOME="/home/vm/JavaJDKDirectory"
git clone https://github.com/pwm-project/pwm
cd pwm
./mvnw clean verify
Windows-Beispiel:
set JAVA_HOME="c:JavaJDKDirectory"
git clone https://github.com/pwm-project/pwm
cd pwm
mvnw.cmd clean verify
Unter Windows empfehlen wir die Verwendung von Pfaden ohne Leerzeichen sowohl für das PWM- als auch für das JDK-Verzeichnis.
Erstellte Artefakte:
Format | Verzeichnis |
---|---|
KRIEG | webapp/target |
Ausführbar | onejar/target |
Docker | Docker/Ziel |