Цель этого проекта — предоставить пользователям очень простую веб-форму, позволяющую изменить свой пароль, хранящийся в LDAP или Active Directory (Samba 4 AD). Он создан с помощью Bottle, микровеб-фреймворка WSGI для Python.
Установите пакет ldap-passwd-webui-waitress из репозитория сообщества Alpine:
apk add ldap-passwd-webui-waitress
Важный | Этот пакет находится в стабильной версии Alpine начиная с версии 3.7. Вы также можете установить его из пограничной (нестабильной) ветки. |
Настройте конфигурацию в /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
Прочтите следующие разделы, чтобы узнать, как его запустить.
Питон 3.x
бутылка
ldap3 2.x
Конфигурация считывается из файла settings.ini. Вы можете изменить местоположение файла настроек, используя переменную среды CONF_FILE
.
Если у вас есть Active Directory (или Samba 4 AD), вы должны использовать зашифрованное соединение (т. е. LDAPS или StartTLS) — AD не позволяет менять пароль через незашифрованное соединение.
Есть несколько способов запустить его:
со встроенным WSGI-сервером по умолчанию на основе wsgiref,
под сервером WSGI, например uWSGI, Waitress, Gunicorn,… (рекомендуется)
как сценарий 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. Полный текст лицензии см. в файле LICENSE.