使用 VMware vSphere Web Client 登录到 VMware vCenter Server Single Sign-On 部署导致出错:未针对 VMware Inventory Service 对客户端进行身份验证
search cancel

使用 VMware vSphere Web Client 登录到 VMware vCenter Server Single Sign-On 部署导致出错:未针对 VMware Inventory Service 对客户端进行身份验证

book

Article ID: 343886

calendar_today

Updated On:

Products

VMware vCenter Server VMware vSphere ESXi

Issue/Introduction

Symptoms:
免责声明:本文为 Logging in to a VMware vCenter Server Single Sign-On deployment with the VMware vSphere Web Client results in an error: Client is not authenticated to VMware Inventory Service (2062219) 的翻译版本。尽管我们会不断努力为本文提供最佳翻译版本,但本地化的内容可能会过时。有关最新内容,请参见英文版本。


  • 使用 VMware vSphere Web Client 登录时,显示以下错误:

    未针对 VMware Inventory Service 对客户端进行身份验证 (Client is not authenticated to VMware Inventory Service)

    注意:在 VMware vSphere Client 中也可能会出现此问题。

  • 在登录到 vSphere Web Client 后无法查看 VMware vCenter Server 清单。
  • 当使用 vCenter Server Heartbeat 6.x 在不同地理位置(多站点)或单个站点配置中部署 vCenter Server SSO,或对其进行保护时,会出现此问题。
  • 当使用 vCenter Server Heartbeat 6.x 以链接模式配置 vCenter Server 或对其进行保护时,会出现此问题。
  • vsphere.local 域用户和外部域用户均会出现此问题。
  • ds.log 文件(位于:%ProgramData%\VMware\Infrastructure\Inventory Service\Logs)包含以下条目之一:
问题 A:
YYYY-MM-DD 00:58:27,387 pool-14-thread-1 ERROR com.vmware.vim.vmomi.server.impl.SoapBindingImpl] Method 'loginBySamlToken' completed with undeclared fault of type 'java.lang.NullPointerException'
java.lang.NullPointerException at com.vmware.vim.dataservices.ssoauthentication.impl.DomainNameNormalizerImp
l.populateDomainMap(DomainNameNormalizerImpl.java:93)at com.vmware.vim.dataservices.ssoauthentication.impl.DomainNameNormalizerImp
l.toVcDomain(DomainNameNormalizerImpl.java:39)at com.vmware.vim.dataservices.ssoauthentication.impl.SsoPrincipalFactoryImpl .nameFromPrincipalId(SsoPrincipalFactoryImpl.java:73)at
com.vmware.vim.dataservices.ssoauthentication.impl.SsoPrincipalFactoryImpl
.createUserPrincipal(SsoPrincipalFactoryImpl.java:124)at


问题 B:
YYYY-MM-DD 12:21:53,132 tomcat-exec-31 ERROR com.vmware.vim.vcauthenticate.servlets.AuthenticationServlet] Internal error reported due to:
com.vmware.vim.vcauthenticate.exception.VimAuthenticateException: com.vmware.vim.dataservices.ssoauthentication.exception.InvalidUserException: Domain does not exist: vCenter_Server_Shortname
Caused by: com.vmware.vim.dataservices.ssoauthentication.exception.InvalidUserException: Domain does not exist: vCenter_Server_Shortname

注意:上面每个日志片段标记的问题与“解决方法”部分中的步骤相关联。
  • vsphere_client_virgo.log 文件(位于:%ProgramData%\VMware\vSphere Web Client\serviceability\logs)包含类似于以下内容的条目:
[YYYY-MM-DD 11:24:27.368] [INFO ] http-bio-9443-exec-370000357 100008 200003 org.springframework.flex.servlet.MessageBrokerHandlerAdapter Channel endpoint secure-amf received request.
[YYYY-MM-DD 11:24:27.546] [WARN ] data-service-pool-44270000357 100008 200003 c.v.vise.vim.data.adapters.search.impl.QueryResultTransformer Not all Inventory Services responded to query ds-auto-generated-name-173. Responded: [e3c132ef-657f-4656-b34a-cdf637c8c25b].Didn't respond: [faae4b74-a999-451f-9f06-aa853ebaf298] (The URLs of the services that didn't respond are: [https://vCenter_Server_FQDN:10443])
[YYYY-MM-DD 11:24:27.557] [ERROR] http-bio-9443-exec-370000357 100008 200003 com.vmware.vise.data.query.impl.DataServiceImplError occurred while executing query: com.vmware.vim.binding.vmodl.MethodFault: Unable to connect to vCenter Inventory Service on vCenter_Server_FQDN


Environment

VMware vCenter Server 5.5.x
VMware vCenter Server Heartbeat 6.6.x
VMware vSphere Web Client 5.5.x

Resolution

这些问题在 vCenter Server 5.5.0b(可从 VMware Download Center 获得)中已得到解决。有关此版本的详细信息,请参见 vCenter Server 5.5.0b Release Notes
要在无法升级到 vCenter Server 5.5.0b 时解决此问题,请替换 vCenter Server Inventory Service 所用的 ds.jar 文件。这可解决问题 A问题 B1B2
  1. 请以管理员身份登录到 vCenter Server。
  2. 导航到 C:\Program Files\VMware\Infrastructure\Inventory Service\lib 文件夹。
  3. 找到 ds.jar 文件。
  4. 创建 ds.jar 文件的备份副本。
  5. 下载本知识库文章所附的 ds.zip 文件。
  6. 将现有 ds.jar 文件替换为新文件。

    注意:如果使用的是 vCenter Server Heartbeat 6.x,请在两个检测信号节点上重复这些步骤。

  7. 重新启动 VMware Inventory Service 和 VMware VirtualCenter Server 服务。有关详细信息,请参见 Stopping, starting, or restarting vCenter services (1003895)
注意:要解决问题 A问题 B1 的问题,请使用 vSphere Web Client 在 vCenter Server Single Sign-On 中创建本地操作系统标识源。您可以在属于 vCenter Server 链接模式的任何虚拟机上执行此解决方法。

要添加本地操作系统标识源,请执行以下操作:
  1. [email protected] 或拥有 SSO 管理员特权的其他用户身份登录到 vSphere Web Client。

    注意:默认的 vSphere Web Client URL 是 https://client-hostname:9443/vsphere-client

  2. 导航到管理 > 单点登录 > 配置
  3. 单击标识源选项卡,然后单击添加标识源图标( )。
  4. 选择本地操作系统
  5. 名称字段中,键入 vCenter Server 的短名称。
  6. 单击确定
  7. 注销 vSphere Web Client,然后再登录。

注意:要在多站点部署或 vCenter Server Heartbeat 6.x 实现中解决问题 B2 中的问题,请从两个 vCenter Server Single Sign-On 节点中移除所有本地操作系统组中的身份验证域用户。


Additional Information

Logging in to a VMware vCenter Server Single Sign-On deployment with the VMware vSphere Web Client results in an error: Client is not authenticated to VMware Inventory Service