在基于 VMWare vSphere 5.5 Windows 的环境中,任何身份验证尝试都会失败(需要一些时间)。
日志提到的行如下:
ERROR [IdentityManager] Failed to find solution user
by subject DN [1.2.840.113549.1.9.1=#1612737570706f727440766d776172652e636f6d,CN=localdomain.local,OU=VMware\, Inc.,O=VMware\, Inc.] in tenant [vsphere.local]
ERROR [ServerUtils] Exception 'java.lang.IllegalStateException: More than one solution user found'
可能是什么原因?
发生了什么
不知道发生了什么,但也许整个描述对某人有所帮助。
通常在端口 11711 上运行的 vSphere 的内部 LDAP 目录已包含损坏的条目。导致奇怪的观察 - 一个人可以向例如 webclient 进行身份验证,但在那里无法做更多的事情,因为它充斥着诸如“客户端未对 VMware Inventory Service - https://myserverFQDN:10443进行身份验证”之类的消息
解决方案
使用 LDAP 客户端(例如 LDAPAdmin)使用以下连接条件登录到服务器:
导航
cn=ServicePrincipals
并检查它们vmwSTSSubjectDN
以确保它们是唯一的。不知道什么是正确的。在其他一些安装中,我发现:但由于某种原因,最后部分(OU=,O=)可能会有所不同
类似问题的提示
我发现有用的是
com.vmware.identity.idm.server.provider.vmwdirectory.VMwareDirectoryProvider
对 vSphere 安装中的一个 JAR 中的类进行反编译。事实证明,它包含一些硬编码的 LDAP 查询,这些查询可能对 VMWare 内部 LDAP 服务器的其他一些故障排除有用。(出于许可原因,我最好不要将其粘贴在这里)。对于反编译第 3 方 Java 类,我学会了使用http://www.javadecompilers.com。CFR 一工作得非常好。