الهدف من هذا المشروع هو توفير نموذج ويب بسيط للغاية للمستخدمين ليتمكنوا من تغيير كلمة المرور الخاصة بهم المخزنة في LDAP أو Active Directory (Samba 4 AD). لقد تم تصميمه باستخدام Bottle، وهو إطار ويب صغير WSGI لـ Python.
قم بتثبيت الحزمة ldap-passwd-webui-waitress من مستودع مجتمع Alpine:
apk add ldap-passwd-webui-waitress
مهم | هذه الحزمة في Alpine Stable منذ الإصدار 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
إذا كان لديك العديد من التطبيقات الصغيرة مثل هذا، فمن المبالغة في IMO تشغيل كل منها في عملية 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. للحصول على النص الكامل للترخيص، راجع ملف الترخيص.