返回
跨域 LDAP 搜索故障排除:修复 “ldap_bind: Invalid credentials (49)” 错误
windows
2024-04-13 06:44:15
跨域 LDAP 搜索故障排除指南
概述
跨域 LDAP 搜索是企业环境中的常见需求,但有时可能会遇到故障。本文将深入探讨从外部域进行 LDAP 搜索时出现的常见错误“ldap_bind: Invalid credentials (49)”,并提供全面的解决方案。
问题
当你试图从外部域(prod.com)使用 LDAP 凭据搜索另一个域(test.com)时,可能会收到错误消息“ldap_bind: Invalid credentials (49)”。这表明LDAP绑定失败,导致无法进行搜索。
解决方案
解决此问题的步骤如下:
1. 验证连接信息
- 确认 LDAP 连接参数,包括主机名、端口号和域信息。
2. 检查凭据
- 验证用于 LDAP 绑定的用户名和密码。
- 确保该帐户已在目标域(test.com)创建并授予必要的权限。
3. 启用 LDAPS
- LDAPS(安全 LDAP)使用 TLS/SSL 加密 LDAP 通信。
- 确保在目标域(test.com)上启用了 LDAPS 并使用正确的端口(636)。
4. 检查防火墙规则
- 确保外部域(prod.com)可以与目标域(test.com)上的 LDAP 端口(636)通信。
- 禁用任何阻止通信的防火墙规则。
5. 验证 Kerberos 委派
- 如果启用了 Kerberos 委派,确保目标域(test.com)已信任委托域(prod.com)并已正确配置委托。
6. 检查 LDAP 权限
- 目标域(test.com)中的 LDAP 对象是否具有允许外部域(prod.com)进行搜索的权限。
- 授予相关帐户或组必要的权限。
7. 禁用 ldapprecheck
- 在目标域(test.com)上禁用 ldapprecheck 可以解决某些 LDAP 绑定问题。
- 运行命令:
reg add HKLM\SYSTEM\CurrentControlSet\Services\ldap /v ldapprecheck /t REG_DWORD /d 0
代码示例
ldapsearch -vx -L -H ldaps://<IP of test.com>:636 -D '[email protected]' -w '**** ' -b "DC=test,DC=com" -s sub "(cn=*)"
- -vx:提供更详细的错误信息。
- -L:启用 LDAP 跟踪。
- -s sub:执行子树搜索。
- 用户名:完全限定用户名(例如,[email protected])。
结论
通过遵循上述步骤,你可以解决“ldap_bind: Invalid credentials (49)”错误,并能够从外部域进行 LDAP 搜索。确保验证连接、凭据、安全设置、权限和防火墙规则,以确保成功的 LDAP 集成。
常见问题解答
1. 为什么会收到“ldap_bind: Invalid credentials (49)”错误?
- LDAP 凭据不正确或帐户权限不足。
2. 如何禁用 ldapprecheck?
- 在域控制器上运行命令:
reg add HKLM\SYSTEM\CurrentControlSet\Services\ldap /v ldapprecheck /t REG_DWORD /d 0
3. 如何验证 Kerberos 委派?
- 检查域信任并确保已启用委派。
4. 如何检查 LDAP 权限?
- 查看 LDAP 对象的属性并验证外部域的权限。
5. 如何启用 LDAPS?
- 在域控制器上配置 LDAPS 并使用端口 636。