PWM adalah aplikasi layanan mandiri kata sandi sumber terbuka untuk direktori LDAP.
Halaman proyek resmi ada di https://github.com/pwm-project/pwm/.
PWM adalah aplikasi berbasis Java Servlet, dan dikemas sebagai file JAR tunggal Java yang dapat dieksekusi, file "WAR" Servlet tradisional, dan gambar buruh pelabuhan.
Persyaratan minimum untuk aplikasi PWM.
Versi PWM | Jawa [^1] | Servlet | kucing jantan [^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] Tidak ada persyaratan untuk implementasi Java tertentu, build PWM menggunakan Adoptium.
[^2] Tomcat bukan persyaratan eksplisit, tetapi ini adalah wadah yang paling umum digunakan dengan PWM, dan yang digunakan untuk pembuatan buruh pelabuhan dan onejar.
PWM didistribusikan dalam artefak berikut, Anda dapat menggunakan mana yang paling nyaman.
Artefak | Keterangan |
---|---|
Java Dapat Dieksekusi | Aplikasi Java JAR yang dapat dieksekusi baris perintah, termasuk kucing jantan. |
PERANG | Model penerapan aplikasi Java WAR (Arsip Web) standar, Anda harus memiliki konfigurasi Java & Tomcat yang berfungsi di server Anda. |
Buruh pelabuhan | Gambar Docker mencakup Java dan Tomcat. |
Untuk semua jenis penerapan, setiap instans PWM memerlukan direktori applicationPath yang ditentukan di server lokal Anda untuk file konfigurasi, log, dan runtime PWM. Setelah PWM dikonfigurasi, UI web awal akan meminta administrator untuk LDAP dan pengaturan konfigurasi lainnya.
Artefak 'onejar' yang dirilis dengan PWM memiliki instance Tomcat yang tertanam, jadi Anda tidak perlu menginstal Tomcat untuk menggunakan versi ini. Ini ideal untuk menguji dan mengevaluasi PWM. Anda akan bertanggung jawab untuk menjalankannya sebagai layanan (jika diinginkan).
Persyaratan:
Membantu:
java -version
untuk memastikan Anda memiliki Java 11 atau lebih baikjava -jar pwm-onejar-2.0.0.jar
untuk bantuan baris perintahContoh untuk menjalankan onejar yang dapat dieksekusi (dengan /pwm-applicationPath menjadi lokasi direktori applicationPath Anda):
java -jar pwm-onejar-2.0.0.jar -applicationPath /pwm-applicationPath
Secara default, file yang dapat dieksekusi akan tetap terpasang ke konsol dan mendengarkan koneksi HTTPS pada port 8443.
Tangga:
Gambar buruh pelabuhan PWM mencakup Java dan Tomcat. Ia mendengarkan menggunakan https pada port 8443, dan memiliki volume yang diekspos sebagai /config
. Anda perlu memetakan volume /config
ke beberapa jenis volume buruh pelabuhan yang persisten agar PWM dapat mempertahankan konfigurasi.
Persyaratan:
Tangga:
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
Sebelum mengonfigurasi PWM, Anda harus menggunakan browser/editor LDAP untuk memastikan fungsionalitas yang diharapkan dari lingkungan LDAP Anda. Sebagian besar kesulitan yang dihadapi saat mengonfigurasi PWM disebabkan oleh masalah pengaturan LDAP atau ketidaktahuan dengan LDAP. Ada banyak browser LDAP yang tersedia, salah satu yang umum adalah Apache Directrory Studio. Gunakan browser untuk menavigasi lingkungan LDAP Anda, memahami struktur direktori, dan memverifikasi perilaku yang diharapkan.
Secara khusus, LDAP Direktori Aktif dapat menimbulkan masalah karena sering kali salah dikonfigurasi dan berperilaku tidak biasa dibandingkan dengan direktori LDAP lainnya. Secara khusus, LDAP AD menggunakan rujukan untuk mengarahkan klien LDAP (dalam hal ini PWM) ke server yang dipilihnya, sehingga PWM harus dapat menghubungi semua instance server pengontrol domain di lingkungan AD menggunakan nama DNS yang dikonfigurasi AD. AD LDAP juga harus dikonfigurasi untuk menggunakan sertifikat SSL agar modifikasi kata sandi dapat berfungsi. Namun, jika lingkungan AD dikonfigurasi dengan baik, PWM akan berfungsi dengan baik.
PWM menyertakan editor konfigurasi berbasis web. Ketika PWM dimulai tanpa konfigurasi, panduan konfigurasi berbasis web akan meminta administrator untuk memberikan informasi konfigurasi dasar. Semua informasi konfigurasi disimpan dalam file PwmConfiguration.xml , yang akan dibuat di direktori jalur aplikasi. Jalur aplikasi juga digunakan untuk file lain, termasuk database lokal ( LocalDB ) (terutama digunakan sebagai cache atau untuk lingkungan pengujian), file log, dan file sementara. Jika beberapa server PWM digunakan secara paralel, setiap server harus memiliki file PwmConfiguration.xml yang identik.
PWM menggunakan kata sandi konfigurasi untuk melindungi setiap modifikasi pada konfigurasi. Otentikasi ke PWM memerlukan login yang didukung LDAP ke akun administratif yang dikonfigurasi. Pada pengaturan awal atau jika terjadi masalah dengan direktori LDAP, konfigurasi mungkin perlu diakses ketika fungsi LDAP tidak tersedia. Untuk tujuan ini, PWM memiliki "mode konfigurasi" yang memungkinkan pengeditan konfigurasi dengan kata sandi konfigurasi, tetapi menonaktifkan semua fungsi pengguna akhir lainnya. Mode konfigurasi dapat diaktifkan/dinonaktifkan dengan mengedit file PwmConfiguration.xml dan mengubah properti configIsEditable
di dekat bagian atas file, dan juga dapat diubah di UI web.
PWM secara opsional dapat dikonfigurasi dengan RDBMS (juga dikenal sebagai server database SQL). Saat dikonfigurasi untuk menggunakan database, metadata pengguna PWM seperti jawaban tantangan/respons, token TOTP, catatan penggunaan, dan data lainnya akan disimpan dalam database. Jika tidak dikonfigurasi untuk menggunakan database, metadata pengguna PWM akan disimpan ke direktori LDAP. Tidak ada yang lebih baik atau lebih buruk, yang mana yang Anda gunakan bergantung pada lingkungan Anda.
Server SQL apa pun yang memiliki driver JDBC yang didukung Java akan berfungsi, PWM akan membuat skemanya sendiri pada koneksi pertama.
Membangun prasyarat:
Langkah-langkah membangun:
Contoh Linux:
export JAVA_HOME="/home/vm/JavaJDKDirectory"
git clone https://github.com/pwm-project/pwm
cd pwm
./mvnw clean verify
Contoh jendela:
set JAVA_HOME="c:JavaJDKDirectory"
git clone https://github.com/pwm-project/pwm
cd pwm
mvnw.cmd clean verify
Di Windows kami merekomendasikan penggunaan jalur tanpa spasi untuk direktori PWM dan JDK.
Artefak yang dibuat:
Format | Direktori |
---|---|
PERANG | aplikasi web/target |
Dapat dieksekusi | onejar/target |
Buruh pelabuhan | buruh pelabuhan/target |