故障场景与现象分析
在管理 vCenter Server 时,你是否遇到过这种情况?Active Directory(AD)用户无法登录 vCenter,收到“Invalid Credentials”(无效凭据)错误,而 vsphere.local 域的用户(如 administrator@vsphere.local)却能正常登录。同时,在导航到“管理员 > 用户和组”时,vCenter 会报告“A vCenter Single Sign-On service error occurred”(vCenter Single Sign-On 服务发生错误)。
典型错误日志
在 /var/log/vmware/sso/ssoAdminServer.log 文件中,可以看到以下警告和错误跟踪:
YYYY-MM-DDTHH:MM:SSZ WARN ssoAdminServer[803:pool-2-thread-24] [OpId=6afa2e35-42e8-4cf2-a3b9-36b1f1c656e9] [com.vmware.identity.interop.ldap.LdapErrorChecker] Error received by LDAP client: com.vmware.identity.interop.ldap.OpenLdapClientLibrary, error code: 49
YYYY-MM-DDTHH:MM:SSZ WARN ssoAdminServer[803:pool-2-thread-24] [OpId=6afa2e35-42e8-4cf2-a3b9-36b1f1c656e9] [com.vmware.identity.idm.server.ServerUtils] cannot bind connection: [ldaps://ldapserver.domain.com:636, CN=ldapservice_user,OU=ServiceAccounts,OU=ENT,DC=DOMAIN,DC=COM]
YYYY-MM-DDTHH:MM:SSZ ERROR ssoAdminServer[803:pool-2-thread-24] [OpId=6afa2e35-42e8-4cf2-a3b9-36b1f1c656e9] [com.vmware.identity.idm.server.ServerUtils] cannot establish ldap connection with URI: [ldaps://ldapserver.domain.com:636] because [Invalid credentials] therefore will not attempt to use any secondary URIs
根本原因分析
根据 VMware 官方分析,这个问题的根本原因是 LDAP 服务账户密码过期:
1. vCenter 通过一个专门的 LDAP 服务账户连接到 Active Directory
2. 当这个服务账户的密码过期后,LDAP 连接会失败
3. 这导致 AD 用户无法通过 vSphere SSO 进行身份验证
4. 但 vsphere.local 域的用户(如 [email protected])由于使用本地身份验证,不受影响
解决方案
步骤一:在 Active Directory 中重置服务账户密码
1. 以域管理员身份登录到域控制器
2. 打开“Active Directory 用户和计算机”管理工具
3. 找到用于 vCenter LDAP 连接的服务账户(通常位于 Service Accounts OU 中)
4. 右键点击该账户,选择“重置密码”
5. 输入新密码,并确保取消选中“用户下次登录时必须更改密码”选项
6. 点击“确定”保存更改
步骤二:在 vCenter 中更新 LDAP 连接密码
1. 使用可以正常登录的账户(如 [email protected])登录到 vCenter
2. 导航到“管理 > 身份提供者”
3. 在“目录服务”部分,找到 LDAP 配置并点击“编辑”
4. 在“连接详细信息”中,找到服务账户密码字段
5. 输入刚才在 Active Directory 中设置的新密码
6. 点击“测试连接”以验证新密码是否有效
7. 如果使用 LDAPS(加密 LDAP),确保 LDAP 服务器证书已正确添加
8. 点击“保存”应用更改
验证与测试
验证步骤
1. 尝试使用 AD 用户登录 vCenter,确认不再出现“Invalid Credentials”错误
2. 导航到“管理 > 用户和组”,确认不再显示 SSO 服务错误
3. 检查 /var/log/vmware/sso/ssoAdminServer.log 文件,确认不再有 LDAP 连接错误
4. 使用多个 AD 用户进行测试,确保所有用户都能正常登录
常见问题排查
1. 如果密码更新后仍无法连接,检查服务账户是否被锁定
2. 确认 LDAP 服务器地址和端口是否正确
3. 检查防火墙设置,确保 vCenter 与域控制器之间的连接畅通
4. 确认服务账户是否具有正确的权限
预防措施
为了避免这个问题再次发生,建议:
1. 设置密码永不过期:对于 vCenter 使用的 LDAP 服务账户,建议设置密码永不过期
2. 定期检查密码状态:定期检查服务账户密码的过期时间,提前进行密码重置
3. 使用密码管理工具:考虑使用专门的密码管理工具来跟踪和管理服务账户密码
4. 实施监控:设置监控机制,在密码即将过期前发送警报
运维经验总结
AD 用户认证失败问题通常与以下因素有关:
- 服务账户密码过期
- 网络连接问题
- 防火墙配置
- 服务账户权限问题
在处理 vCenter 身份验证问题时,建议先检查 ssoAdminServer.log 文件,从日志中获取关键信息,然后根据错误代码进行针对性的排查。
通过正确管理 LDAP 服务账户密码,你可以确保 vCenter 与 Active Directory 的稳定连接,避免用户认证失败问题的发生。
Reference: VMware KB 402295







