--- title: Docker-Compose 部署 OpenLDAP 与密码自助找回服务教程 date: 2025-07-24 17:25:00 +0800 categories: [工具] tags: [OpenLDAP,ldap] pin: false --- ## 概述 本教程将指导您使用 Docker-Compose 部署 OpenLDAP 和 LTB Self-Service Password (SSP),以实现 LDAP 密码的自助找回功能。我们还将添加详细注释,帮助您理解配置文件中的每一项设置。 --- ## 前提条件 - 已安装 Docker 和 Docker-Compose。 - 基础的 Linux 操作系统使用经验。 --- ## 步骤 1:创建 `docker-compose.yml` 文件 在目标目录下创建 `docker-compose.yml` 文件,粘贴以下内容: ```yaml docker-compose.yml services: openldap: container_name: openldap hostname: openldap.algs.tech restart: always image: osixia/openldap:latest ports: - "389:389" # 暴露 LDAP 服务的 389 端口 environment: - LDAP_ORGANISATION="algs.tech" # 设置 LDAP 组织名称 - LDAP_DOMAIN=algs.tech # 设置 LDAP 根域名 - LDAP_ADMIN_PASSWORD=abc2024XYZ # 设置 LDAP 管理员密码 - LDAP_TLS=false # 是否启用 TLS(false 表示不启用,便于测试) volumes: - /opt/ldap/local:/usr/local/ldap # 本地挂载目录,便于存储自定义内容 - /opt/ldap/data:/var/lib/ldap # 存储 LDAP 数据的目录 - /opt/ldap/slapd.d:/etc/ldap/slapd.d # 存储 OpenLDAP 配置文件的目录 - /etc/certs/ssl/algs.tech:/container/service/slapd/assets/certs # SSL 证书挂载目录 command: [--copy-service, --loglevel, warning] # 设置启动命令,减少日志冗余 phpldapadmin: container_name: phpldapadmin hostname: phpldapadmin.algs.tech restart: always image: osixia/phpldapadmin:latest ports: - 8080:80 # 暴露 phpLDAPadmin 的 HTTP 服务 environment: - PHPLDAPADMIN_HTTPS=false # 禁用 HTTPS(便于测试) - PHPLDAPADMIN_LDAP_HOSTS=openldap # 指定 OpenLDAP 服务主机名 links: - openldap # 链接到 OpenLDAP 容器 depends_on: - openldap # 确保 OpenLDAP 容器先启动 ssp-app: image: ltbproject/self-service-password hostname: ssp.algs.tech container_name: ssp-app restart: always volumes: - ./custom/ssp.conf.php:/var/www/conf/config.inc.local.php:ro # 挂载自定义配置文件 - ./custom/images:/var/www/htdocs/images/custom:ro # 挂载自定义图片目录 ports: - 80:80 # 暴露 SSP 服务的 HTTP 服务 ``` --- ## 步骤 2:创建 SSP 的自定义 PHP 配置文件 在同一目录下创建 `custom/ssp.conf.php` 文件,粘贴以下内容,并根据需求调整: ```php :80` - Self-Service Password:`http://<服务器IP>:8080` --- ## 步骤 4:测试与验证 1. 在 SSP 登录界面输入 LDAP 用户的邮箱地址,并尝试找回密码。 2. 检查邮件是否正确发送。 3. 确保密码更新在 LDAP 中成功生效。 --- ## 常见问题 ### 1. 邮件未发送 - 检查 SMTP 配置是否正确。 - 确认网络是否允许访问 SMTP 服务器。 ### 2. 密码更新失败 - 确认 LDAP 管理员账号和密码是否正确。 - 检查 OpenLDAP 服务日志。 ### 3. 审计日志为空 - 检查 `ssp.conf.php` 中的日志路径是否正确。 --- 至此,您已成功部署了基于 Docker 的 LDAP 与密码自助找回服务!