可以使用 sso-config 实用程序从命令行配置智能卡身份验证。该实用程序支持所有智能卡配置任务。

开始之前

  • 确认您的环境使用 Platform Services Controller 6.0 Update 2 或更高版本,且使用 vCenter Server 6.0 或更高版本。将版本 5.5 节点升级到版本 6.0。

  • 验证在您的环境中是否设置了企业公钥基础架构 (PKI),以及证书是否满足以下要求:

    • 用户主体名称 (UPN) 对应于使用者备用名称 (SAN) 扩展名中的 Active Directory 帐户。

    • 必须在证书的“应用程序策略”或“增强型密钥用法”字段中指定客户端身份验证,否则浏览器将不显示该证书。

  • 验证 Platform Services Controller Web 界面证书是否受最终用户工作站信任;否则,浏览器不会尝试身份验证。

  • 配置 Active Directory 标识源,并将其作为标识源添加到 vCenter Single Sign-On。

  • vCenter Server 管理员角色分配给 Active Directory 标识源中的一个或多个用户。然后那些用户可以进行身份验证,因为他们在 Active Directory 组中,并且具有 vCenter Server 管理员特权。administrator@vsphere.local 用户无法执行智能卡身份验证。

  • 如果要在您的环境中使用 Platform Services Controller HA 解决方案,请在设置智能卡身份验证之前完成所有 HA 配置。请参见 VMware 知识库文章 2112085 (Windows) 或 2113315 (vCenter Server Appliance)。

关于此任务

从命令行配置智能卡身份验证时,请始终先使用 sso-config 命令设置 Platform Services Controller。然后,可以通过使用 Platform Services Controller Web 界面执行其他任务。

  1. 配置 Platform Services Controller,以便 Web 浏览器在用户登录时请求提交智能卡证书。

  2. 配置身份验证策略。您可以通过使用 sso-config 脚本或 Platform Services Controller Web 界面配置策略。支持的身份验证类型和吊销设置的配置存储在 VMware Directory Service 中,且在 vCenter Single Sign-On 域中的所有 Platform Services Controller 实例之间复制。

如果已启用智能卡身份验证并禁用其他身份验证方法,则用户需要使用智能卡身份验证进行登录。

如果从 vSphere Web Client 登录不起作用,并且如果用户名和密码身份验证已关闭,则 root 用户或管理员用户可以通过运行以下命令从 Platform Services Controller 命令行重新打开用户名和密码身份验证。该示例用于 Windows;对于 Linux,请使用 sso-config.sh

sso-config.bat -set_authn_policy -pwdAuthn true

您可以在以下位置找到 sso-config 脚本:

Windows

C:\Program Files\VMware\VCenter server\VMware Identity Services\sso-config.bat

Linux

/opt/vmware/bin/sso-config.sh

过程

  1. 获取证书并将其复制到 sso-config 实用程序可以检测到的文件夹。

    选项

    描述

    Windows

    登录到 Platform Services Controller Windows 安装,并使用 WinSCP 或类似的实用程序复制文件。

    Appliance

    1. 直接或者使用 SSH 登录到设备控制台。

    2. 启用设备 shell,如下所示。

      shell.set --enabled True
      shell
      chsh -s "/bin/bash" root
      csh -s "bin/appliance/sh" root
    3. 使用 WinSCP 或类似的实用程序将证书复制到 Platform Services Controller 上的 /usr/lib/vmware-sso/vmware-sts/conf

    4. 选择性禁用设备 shell,如下所示。

      chsh -s "bin/appliancesh" root
  2. 在每个 Platform Services Controller 节点上,通过使用 sso-config CLI 配置智能卡身份验证设置。
    1. 转到 sso-config 脚本所在的目录。

      选项

      描述

      Windows

      C:\Program Files\VMware\VCenter server\VMware Identity Services

      Appliance

      /opt/vmware/bin

    2. 运行下列命令:
      sso-config.[bat|sh] -set_tc_cert_authn -switch true -cacerts  [FirstTrustedCA.cer,SecondTrustedCA.cer,...]  -t tenant
      

      例如:

      sso-config.bat -set_tc_cert_authn -switch true -cacerts MySmartCA1.cer -t vsphere.local
      
    3. 重新启动虚拟机或物理机。
      service-control --stop vmware-stsd
      service-control --start vmware-stsd
      
  3. 要为 VMware Directory Service (vmdir) 启用智能卡身份验证,请运行以下命令。
    sso-config.[bat|sh] -set_authn_policy -certAuthn true -cacerts first_trusted_cert.cer,second_trusted_cert.cer  -t tenant
    

    例如:

    sso-config.[bat|sh] -set_authn_policy -certAuthn true -cacerts MySmartCA1.cer,MySmartCA2.cer  -t vsphere.local
    

    如果指定多个证书,不允许在证书之间使用空格。

  4. 要禁用所有其他身份验证方法,请运行以下命令。
    sso-config.sh -set_authn_policy -pwdAuthn false -t vsphere.local
    sso-config.sh -set_authn_policy -winAuthn false -t vsphere.local
    sso-config.sh -set_authn_policy -securIDAuthn false -t vsphere.local

    您可以根据需要使用以下命令启用和禁用其他身份验证方法。

  5. (可选) : 要设置证书策略白名单,请运行以下命令。
    sso-config.[bat|sh] -set_authn_policy -certPolicies policies

    要指定多个策略,请用逗号分隔它们,例如:

    sso-config.bat -set_authn_policy -certPolicies 2.16.840.1.101.2.1.11.9,2.16.840.1.101.2.1.11.19

    此白名单指定证书的证书策略扩展中允许的策略的对象 ID。X509 证书可具有证书策略扩展。

  6. (可选) : 要列出配置信息,请运行以下命令。
    sso-config.[bat|sh] -get_authn_policy -t tenantName