ltbproject/self-service-passwordLDAP Tool Box Self Service Password 是一款基于 PHP 开发的应用程序,旨在允许用户自助管理其 LDAP 目录中的密码。该应用支持标准 LDAPv3 目录服务(如 OpenLDAP、OpenDS、ApacheDS、Sun Oracle DSEE、Novell 等)及 Active Directory 环境,提供安全、灵活的密码更改与重置功能,减少管理员手动操作负担,提升用户自助服务体验。
php-curl(用于 haveibeenpwned API 集成)php-gd(验证码生成)php-filter(数据过滤)php-ldap(LDAP 连接)php-mbstring(邮件重置功能)php-openssl(令牌加密,通常内置)bashdocker run -d \ --name self-service-password \ -p 8080:80 \ -e LDAP_SERVER_URI="ldap://ldap.example.com:389" \ -e LDAP_BIND_DN="cn=admin,dc=example,dc=com" \ -e LDAP_BIND_PASSWORD="admin_password" \ -e LDAP_BASE_DN="ou=users,dc=example,dc=com" \ -e PASSWORD_MIN_LENGTH=8 \ -e RESET_METHOD="mail" \ -e SMTP_SERVER="smtp.example.com" \ -e SMTP_PORT=587 \ -e SMTP_USER="***" \ -e SMTP_PASSWORD="smtp_password" \ ltbproject/self-service-password:latest
yamlversion: '3' services: self-service-password: image: ltbproject/self-service-password:latest container_name: self-service-password ports: - "8080:80" environment: # LDAP 配置 LDAP_SERVER_URI: "ldap://ldap.example.com:389" LDAP_BIND_DN: "cn=admin,dc=example,dc=com" LDAP_BIND_PASSWORD: "admin_password" LDAP_BASE_DN: "ou=users,dc=example,dc=com" LDAP_USER_FILTER: "(&(objectClass=inetOrgPerson)(uid={login}))" # 密码策略 PASSWORD_MIN_LENGTH: 8 PASSWORD_MAX_LENGTH: 64 PASSWORD_FORBIDDEN_CHARS: "\"'\\ " PASSWORD_COMPLEXITY: "2" # 至少包含 2 类字符(大小写、数字、特殊字符) PASSWORD_REUSE_CHECK: "3" # 禁止复用最近 3 次密码 # 重置配置 RESET_METHOD: "mail" # 支持 mail, questions, sms MAIL_FROM: "***" MAIL_SUBJECT: "密码重置请求" # SMTP 配置(用于邮件重置) SMTP_SERVER: "smtp.example.com" SMTP_PORT: 587 SMTP_USER: "***" SMTP_PASSWORD: "smtp_password" SMTP_ENCRYPTION: "tls" # 验证码配置 CAPTCHA_ENABLED: "true" volumes: - ./config:/var/www/html/conf # 挂载自定义配置文件 restart: unless-stopped
| 参数名称 | 描述 | 默认值/示例 |
|---|---|---|
LDAP_SERVER_URI | LDAP 服务器地址和端口 | ldap://ldap.example.com:389 |
LDAP_BIND_DN | 用于绑定 LDAP 的管理员 DN | cn=admin,dc=example,dc=com |
LDAP_BIND_PASSWORD | LDAP 管理员密码 | admin_password |
LDAP_BASE_DN | 用户搜索的基准 DN | ou=users,dc=example,dc=com |
PASSWORD_MIN_LENGTH | 密码最小长度 | 8 |
PASSWORD_MAX_LENGTH | 密码最大长度 | 64 |
PASSWORD_COMPLEXITY | 字符类别复杂度要求(0-4) | 2(至少 2 类字符) |
RESET_METHOD | 重置方式(mail/questions/sms) | mail |
SMTP_SERVER | SMTP 服务器地址 | smtp.example.com |
CAPTCHA_ENABLED | 是否启用验证码 | true |
应用配置文件位于容器内 /var/www/html/conf/config.inc.php,可通过挂载本地目录自定义配置:
bash# 本地配置文件示例(config/config.inc.php) <?php $ldap_server_uri = "ldap://ldap.example.com:389"; $ldap_bind_dn = "cn=admin,dc=example,dc=com"; $ldap_bind_password = "admin_password"; $ldap_base_dn = "ou=users,dc=example,dc=com"; $password_min_length = 10; $password_complexity = 3; # 至少 3 类字符 $reset_method = "questions"; # 使用安全问题重置 ?>
挂载到容器:
bashdocker run -d \ --name self-service-password \ -p 8080:80 \ -v ./config:/var/www/html/conf \ ltbproject/self-service-password:latest
完整文档:[***]
GitHub 仓库:[***]
manifest unknown 错误
TLS 证书验证失败
DNS 解析超时
410 错误:版本过低
402 错误:流量耗尽
身份认证失败错误
429 限流错误
凭证保存错误
来自真实用户的反馈,见证轩辕镜像的优质服务