このプロジェクトの目的は、LDAP または Active Directory (Samba 4 AD) に保存されているパスワードを変更できる非常にシンプルな Web フォームをユーザーに提供することです。これは、Python 用の WSGI マイクロ Web フレームワークである Bottle で構築されています。
Alpine のコミュニティ リポジトリからパッケージldap-passwd-webui-waitresをインストールします。
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、Waittress、Gunicorn などの WSGI サーバーの下で (推奨)
CGI スクリプトとして。
app.py
を実行するだけです。
python3 app . py
その後、http://localhost:8080 でアプリにアクセスできるようになります。ポートとホストは settings.ini で変更される場合があります。
cd ldap-passwd-webui
waitress-serve --listen= * :8080 app:application
このようなマイクロアプリが多数ある場合、それぞれを個別の uWSGI プロセスで実行するのは、IMO ではちょっとやりすぎですよね。あまり知られていませんが、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 ファイルを参照してください。