Gerrit配置OpenLDAP认证报错LDAP错误码48:禁止匿名绑定
Gerrit OpenLDAP认证配置排查方案
问题分析
错误LDAP: error code 48 - anonymous bind disallowed明确说明:Gerrit在连接LDAP服务器时未使用配置的管理员账号进行绑定,而是尝试了匿名绑定操作,被LDAP服务器拒绝。
可能的配置问题及修复步骤
1. 检查secure.config的密码配置正确性
确保secure.config文件放置在Gerrit的etc目录下(与gerrit.config同级),且[ldap]段的密码配置格式完全正确:
[ldap] password = 你的LDAP管理员账号密码
- 需将文件权限设置为
600(仅所有者可读),避免权限过高导致Gerrit无法读取或密码泄露。
2. 验证Gerrit是否加载了secure.config
可以临时在gerrit.config的[ldap]段添加明文密码(仅用于测试,测试完成后立即删除),如果此时能正常绑定LDAP,说明secure.config的路径或权限存在问题,导致Gerrit未加载该文件中的密码配置。
3. 补全LDAP绑定相关配置
确保gerrit.config的[ldap]段没有遗漏关键绑定规则:
[auth] type = LDAP gitBasicAuthPolicy = HTTP userNameCaseInsensitive = true [ldap] server = ldap://ldap_server_ip username = cn=admin,dc=company,dc=com accountBase = dc=company,dc=com groupBase = dc=company,dc=com # 若用户登录用uid而非cn,需添加绑定规则示例: # bindPattern = uid=${username},ou=users,dc=company,dc=com
- 如果LDAP服务器使用非默认端口,需在
server地址后补充端口,比如ldap://ldap_server_ip:389;如果是LDAPS协议,需改为ldaps://ldap_server_ip:636。
4. 直接测试LDAP服务器连通性
用ldapsearch命令跳过Gerrit,直接验证管理员账号的绑定权限,排查LDAP服务器本身的问题:
ldapsearch -x -H ldap://ldap_server_ip -D cn=admin,dc=company,dc=com -W -b dc=company,dc=com
输入密码后若能正常返回用户/组信息,说明LDAP服务器及管理员账号无问题,问题集中在Gerrit配置。
额外注意事项
- 若LDAP服务器启用了TLS,需在
[ldap]段添加sslVerify = false(测试用)或配置CA证书路径sslCert = /path/to/ca.crt; - Gerrit旧版本可能存在LDAP配置兼容性问题,建议升级至最新稳定版。
内容的提问来源于stack exchange,提问作者Sora Tseng
相关产品推荐
相关产品推荐

