Tujuan dari proyek ini adalah untuk menyediakan formulir web yang sangat sederhana bagi pengguna untuk dapat mengubah kata sandi yang disimpan di LDAP atau Direktori Aktif (Samba 4 AD). Itu dibangun dengan Bottle, kerangka web mikro WSGI untuk Python.
Instal paket ldap-passwd-webui-waitress dari repositori komunitas Alpine:
apk add ldap-passwd-webui-waitress
Penting | Paket ini ada di Alpine stable sejak v3.7. Anda juga dapat menginstalnya dari cabang edge (tidak stabil). |
Sesuaikan konfigurasi di /etc/ldap-passwd-webui.ini
dan /etc/conf.d/
.
Mulai layanan ldap-passwd-webui:
/etc/init.d/ldap-passwd-webui start
Kloning repositori ini dan instal dependensi:
git clone [email protected]:jirutka/ldap-passwd-webui.git
cd ldap-passwd-webui
pip install -r requirements.txt
Baca bagian selanjutnya untuk mempelajari cara menjalankannya.
Python 3.x
botol
ldap3 2.x
Konfigurasi dibaca dari file settings.ini. Anda dapat mengubah lokasi file pengaturan menggunakan variabel lingkungan CONF_FILE
.
Jika Anda memiliki Direktori Aktif (atau Samba 4 AD), maka Anda harus menggunakan koneksi terenkripsi (yaitu LDAPS atau StartTLS) – AD tidak mengizinkan perubahan kata sandi melalui koneksi tidak terenkripsi.
Ada beberapa cara untuk menjalankannya:
dengan server WSGI bawaan bawaan berdasarkan wsgiref,
di bawah server WSGI seperti uWSGI, Waitress, Gunicorn,… (disarankan)
sebagai skrip CGI.
Cukup jalankan app.py
:
python3 app . py
Kemudian Anda dapat mengakses aplikasinya di http://localhost:8080. Port dan host dapat diubah di settings.ini.
cd ldap-passwd-webui
waitress-serve --listen= * :8080 app:application
Jika Anda memiliki banyak aplikasi mikro seperti ini, agak berlebihan jika menjalankan masing-masing aplikasi mikro dalam proses uWSGI yang terpisah, bukan? Ini tidak begitu terkenal, namun uWSGI memungkinkan untuk "memasang" beberapa aplikasi dalam satu proses uWSGI dan dengan satu soket.
[uwsgi]
plugins = python3
socket = /run/uwsgi/main.sock
chdir = /var/www/scripts
logger = file:/var/log/uwsgi/main.log
processes = 1
threads = 2
# map URI paths to applications
mount = /admin/ ldap-passwd-webui =ldap-passwd-webui/app.py
# mount = /admin/change-world=change-world/app.py
manage-script-name = true
server {
listen 443 ssl;
server_name example.org;
ssl_certificate /etc/ssl/nginx/nginx.crt;
ssl_certificate_key /etc/ssl/nginx/nginx.key;
# uWSGI scripts
location /admin/ {
uwsgi_pass unix:/run/uwsgi/main.sock;
include uwsgi_params;
}
}
Proyek ini dilisensikan di bawah Lisensi MIT. Untuk teks lengkap lisensi, lihat file LISENSI.