LDAP 认证
本指南介绍如何配置 Palpo 使用 LDAP 目录服务进行用户认证。
概述
LDAP(轻量级目录访问协议)认证允许用户使用现有的企业目录凭据登录 Palpo。这对于已经在 Active Directory、OpenLDAP 或类似目录服务中管理用户账户的组织非常有用。
前提条件
- 运行中的 LDAP 服务器(如 OpenLDAP、Active Directory、FreeIPA)
- Palpo 和 LDAP 服务器之间的网络连接
- 适当的 LDAP 绑定凭据(如果未启用匿名访问)
配置
在您的 palpo.toml 配置文件中添加以下部分:
配置选项
基本选项
绑定选项
搜索选项
管理员选项
绑定模式
Palpo 支持两种 LDAP 绑定模式:
1. 服务账户绑定(推荐)
使用专用服务账户搜索用户:
此模式:
- 首先使用服务账户绑定以搜索用户
- 然后通过绑定找到的用户来验证密码
- 支持通过
admin_filter自动检测管理员角色
2. 直接绑定
无需搜索直接作为用户绑定:
此模式:
- 直接在绑定 DN 中使用提供的用户名
- 不支持自动管理员检测(admin_filter 被忽略)
- 更简单但灵活性较低
示例
OpenLDAP 配置
Active Directory 配置
管理员角色检测
自动为特定 LDAP 用户授予管理员权限:
安全考虑
- 使用 LDAPS:尽可能使用
ldaps://(LDAP over TLS)加密连接 - 保护凭据:使用限制性权限存储绑定密码文件(如
chmod 600) - 限制绑定账户权限:绑定账户应仅对必要属性具有读取权限
- 网络安全:考虑在 Palpo 和 LDAP 服务器之间使用 VPN 或私有网络
故障排除
连接问题
- 验证 LDAP 服务器是否可达:
ldapsearch -H ldap://server:389 -x -b "dc=example,dc=org" - 检查端口 389(LDAP)或 636(LDAPS)的防火墙规则
- 确保绑定 DN 和密码正确
认证失败
- 使用
ldapsearch手动测试搜索过滤器 - 验证
uid_attribute是否与目录架构匹配 - 检查密码文件是否可被 Palpo 读取
- 启用调试日志查看详细的 LDAP 操作