Bitnami OpenLDAP容器添加自定义Schema时ldap_bind凭证无效(49)
解决Bitnami OpenLDAP 2容器config admin绑定无效凭证(49)问题
问题描述
部署Bitnami OpenLDAP 2版本Docker容器,配置LDAP_CONFIG_ADMIN_ENABLED=true,尝试通过ldapmodify命令或Apache Directory Studio使用cn=admin,cn=config/configpassword绑定config目录时,返回ldap_bind: Invalid credentials (49)错误。
容器docker-compose.yaml配置:
version: '2' services: openldap: image: bitnami/openldap:2 ports: - '1389:1389' - '1636:1636' environment: - LDAP_ADMIN_USERNAME=AdminCPS - LDAP_ADMIN_PASSWORD=passwordCPS - LDAP_USERS=user01,user02 - LDAP_PASSWORDS=password1,password2 - LDAP_ROOT=dc=ldap_admin - LDAP_USER_DC=CPS - LDAP_CONFIG_ADMIN_ENABLED=true volumes: - './openldap_data:/bitnami/openldap'
绑定命令:
ldapmodify -h localhost -p 1389 -D "cn=admin,cn=config" -w configpassword -f /schema/custom.ldif
可能原因及解决方案
1. 持久化卷中存在旧配置,未加载新的config admin设置
Bitnami OpenLDAP容器的配置会持久化到挂载的./openldap_data目录中,如果容器首次启动时未设置LDAP_CONFIG_ADMIN_ENABLED=true,后续添加该环境变量不会自动更新已有配置。
解决步骤:
- 停止容器:
docker-compose down - 备份现有数据(避免丢失):
cp -r openldap_data openldap_data_backup - 删除旧的持久化目录:
rm -rf openldap_data - 重新启动容器,让其重新初始化配置:
docker-compose up -d - 重新尝试绑定操作。
2. 验证config admin的实际DN和密码
如果重新初始化后仍失败,可通过容器日志或域管理员账号验证config admin的信息:
- 查看容器启动日志,确认config admin的创建信息:
docker logs <your-openldap-container-name> - 使用域管理员账号(
cn=AdminCPS,dc=ldap_admin/passwordCPS)查询config目录,确认admin用户的存在:
若查询结果中存在ldapsearch -h localhost -p 1389 -D "cn=AdminCPS,dc=ldap_admin" -w passwordCPS -b cn=configcn=admin,cn=config条目,可进一步验证其密码是否为configpassword。
3. 确认连接端口与协议
确保使用的是普通LDAP端口1389,而非TLS加密端口1636;若使用TLS连接,需添加-Z参数到ldapmodify命令中。
补充说明
Bitnami OpenLDAP默认启用LDAP_CONFIG_ADMIN_ENABLED=true时,会创建cn=admin,cn=config用户,密码为configpassword,但该配置仅在容器首次初始化时生效,若已有持久化数据则不会覆盖。
内容的提问来源于stack exchange,提问作者Martín Alcubierre
相关产品推荐
相关产品推荐

