El objetivo de este proyecto es proporcionar un formulario web muy sencillo para que los usuarios puedan cambiar su contraseña almacenada en LDAP o Active Directory (Samba 4 AD). Está construido con Bottle, un micro framework web WSGI para Python.
Instale el paquete ldap-passwd-webui-waitress desde el repositorio comunitario de Alpine:
apk add ldap-passwd-webui-waitress
Importante | Este paquete está en Alpine estable desde v3.7. También puede instalarlo desde una rama de borde (inestable). |
Ajuste la configuración en /etc/ldap-passwd-webui.ini
y /etc/conf.d/
.
Inicie el servicio ldap-passwd-webui:
/etc/init.d/ldap-passwd-webui start
Clona este repositorio e instala las dependencias:
git clone [email protected]:jirutka/ldap-passwd-webui.git
cd ldap-passwd-webui
pip install -r requirements.txt
Lea las siguientes secciones para aprender cómo ejecutarlo.
Pitón 3.x
botella
ldap3 2.x
La configuración se lee desde el archivo settings.ini. Puede cambiar la ubicación del archivo de configuración utilizando la variable de entorno CONF_FILE
.
Si tiene Active Directory (o Samba 4 AD), debe utilizar una conexión cifrada (es decir, LDAPS o StartTLS); AD no permite cambiar la contraseña a través de una conexión no cifrada.
Hay varias formas de ejecutarlo:
con el servidor WSGI predeterminado integrado basado en wsgiref,
bajo un servidor WSGI como uWSGI, Waitress, Gunicorn,… (recomendado)
como un guión CGI.
Simplemente ejecute app.py
:
python3 app . py
Luego puede acceder a la aplicación en http://localhost:8080. El puerto y el host se pueden cambiar en settings.ini.
cd ldap-passwd-webui
waitress-serve --listen= * :8080 app:application
Si tiene muchas microaplicaciones como esta, en mi opinión es un poco excesivo ejecutar cada una en un proceso uWSGI separado, ¿no es así? No es tan conocido, pero uWSGI permite “montar” múltiples aplicaciones en un único proceso uWSGI y con un único socket.
[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;
}
}
Este proyecto está bajo licencia MIT. Para obtener el texto completo de la licencia, consulte el archivo LICENCIA.