该项目的目的是为用户提供一个非常简单的 Web 表单,以便能够更改存储在 LDAP 或 Active Directory (Samba 4 AD) 中的密码。它是用 Bottle 构建的,Bottle 是一个 Python 的 WSGI 微型网络框架。
从 Alpine 的社区存储库安装软件包ldap-passwd-webui-waitress :
apk add ldap-passwd-webui-waitress
重要的 | 该软件包自 v3.7 起在 Alpine 中保持稳定。您还可以从边缘(不稳定)分支安装它。 |
调整/etc/ldap-passwd-webui.ini
和/etc/conf.d/
中的配置。
启动服务 ldap-passwd-webui:
/etc/init.d/ldap-passwd-webui start
克隆此存储库并安装依赖项:
git clone [email protected]:jirutka/ldap-passwd-webui.git
cd ldap-passwd-webui
pip install -r requirements.txt
阅读接下来的部分以了解如何运行它。
Python 3.x
瓶子
LDAP3 2.x
配置是从文件settings.ini 中读取的。您可以使用环境变量CONF_FILE
更改设置文件的位置。
如果您有 Active Directory(或 Samba 4 AD),则必须使用加密连接(即 LDAPS 或 StartTLS) - AD 不允许通过未加密连接更改密码。
有多种运行方法:
使用基于 wsgiref 的内置默认 WSGI 服务器,
在 uWSGI、Waitress、Gunicorn 等 WSGI 服务器下(推荐)
作为 CGI 脚本。
只需执行app.py
:
python3 app . py
然后您就可以通过 http://localhost:8080 访问该应用程序。端口和主机可以在 settings.ini 中更改。
cd ldap-passwd-webui
waitress-serve --listen= * :8080 app:application
如果你有很多这样的微应用程序,那么在单独的 uWSGI 进程中运行每个应用程序在我看来有点矫枉过正,不是吗?虽然不太为人所知,但 uWSGI 允许使用单个套接字在单个 uWSGI 进程中“安装”多个应用程序。
[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;
}
}
该项目已获得 MIT 许可。有关许可证的全文,请参阅 LICENSE 文件。