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

您可以在以下位置找到 sso-config 脚本:
Windows C:\Program Files\VMware\VCenter server\VMware Identity Services\sso-config.bat
Linux /opt/vmware/bin/sso-config.sh

支持的身份验证类型和吊销设置的配置存储在 VMware Directory Service 中,且在 vCenter Single Sign-On 域中的所有 Platform Services Controller 实例之间复制。

如果禁用用户名和密码身份验证,且智能卡身份验证出现问题,则用户无法登录。在这种情况下,root 或管理员用户可以从 Platform Services Controller 命令行打开用户名和密码身份验证。以下命令可启用用户名和密码身份验证。
操作系统 命令
Windows
sso-config.bat -set_authn_policy 
-pwdAuthn true -t <tenant_name>

如果您使用默认租户,请使用 vsphere.local 作为租户名称。

Linux
sso-config.sh -set_authn_policy -pwdAuthn true
-t <tenant_name>

如果您使用默认租户,请使用 vsphere.local 作为租户名称。

如果您使用 OCSP 进行吊销检查,则可以依靠在智能卡证书 AIA 扩展中指定的默认 OCSP。您还可以替代默认设置并配置一个或多个替代 OCSP 响应者。例如,您可以设置 vCenter Single Sign-On 站点本地的 OCSP 响应者,用于处理吊销检查请求。

注: 如果您的证书未定义 OCSP,请改为启用 CRL(证书吊销列表)。

前提条件

  • 验证您的环境是否使用 Platform Services Controller 版本 6.5,以及您是否使用 vCenter Server 版本 6.0 或更高版本。Platform Services Controller 版本 6.0 Update 2 支持智能卡身份验证,但设置过程有所不同。
  • 验证在您的环境中是否设置了企业公钥基础架构 (PKI),以及证书是否满足以下要求:
    • 用户主体名称 (UPN) 必须对应于主体备用名称 (SAN) 扩展名中的 Active Directory 帐户。
    • 必须在证书的“应用程序策略”或“增强型密钥使用”字段中指定“客户端身份验证”,否则浏览器将不显示证书。

  • 确认 Platform Services Controller Web 界面证书受最终用户工作站信任。否则,浏览器不会尝试身份验证。
  • 将 Active Directory 标识源添加到 vCenter Single Sign-On。
  • vCenter Server 管理员角色分配给 Active Directory 标识源中的一个或多个用户。然后,这些用户可执行管理任务,因为他们可以进行身份验证,并且具有 vCenter Server 管理员特权。
    注: 默认情况下,vCenter Single Sign-On 域的管理员 [email protected] 无法执行智能卡身份验证。
  • 设置反向代理,然后重新启动物理机或虚拟机。

过程

  1. 获取证书并将其复制到 sso-config 实用程序可以检测到的文件夹。
    选项 描述
    Windows 登录到 Platform Services Controller Windows 安装,并使用 WinSCP 或类似的实用程序复制文件。
    Appliance
    1. 直接或者使用 SSH 登录到设备控制台。
    2. 启用设备 shell,如下所示。
      shell
      chsh -s "/bin/bash" root
    3. 使用 WinSCP 或类似的实用程序将证书复制到 Platform Services Controller 上的 /usr/lib/vmware-sso/vmware-sts/conf
    4. 选择性禁用设备 shell,如下所示。
      chsh -s "/bin/appliancesh" root
  2. 要为 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
    
    使用逗号分隔多个证书,但不要在逗号后面加空格。
  3. 要禁用所有其他身份验证方法,请运行以下命令。
    sso-config.[bat|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
  4. (可选) 要设置证书策略允许列表,请运行以下命令。
    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 证书可具有证书策略扩展。
  5. (可选) 启用并配置使用 OCSP 进行吊销检查。
    1. 启用使用 OCSP 进行吊销检查。
      sso-config.[bat|sh]  -set_authn_policy -t tenantName  -useOcsp true
    2. 如果证书的 AIA 扩展未提供 OCSP 响应者链接,请提供替代 OCSP 响应者 URL 和 OCSP 颁发机构证书。
      为每个 vCenter Single Sign-On 站点配置了替代的 OCSP。您可以为 vCenter Single Sign-On 站点指定多个替代 OCSP 响应者,以便允许进行故障切换。
      sso-config.[bat|sh] -t tenant -add_alt_ocsp  [-siteID yourPSCClusterID] -ocspUrl http://ocsp.xyz.com/ -ocspSigningCert yourOcspSigningCA.cer
      注: 默认情况下,配置将应用于当前 vCenter Single Sign-On 站点。仅当为其他 vCenter Single Sign-On 站点配置替代 OCSP 时,才需要指定 siteID 参数。

      请参见下面的示例:

       .sso-config.[bat|sh] -t vsphere.local -add_alt_ocsp -ocspUrl http://failover.ocsp.nsn0.rcvs.nit.disa.mil/ -ocspSigningCert ./DOD_JITC_EMAIL_CA-29__0x01A5__DOD_JITC_ROOT_CA_2.cer
       Adding alternative OCSP responder for tenant :vsphere.local
       OCSP responder is added successfully!
       [
       site::   78564172-2508-4b3a-b903-23de29a2c342
           [
           OCSP url::   http://ocsp.nsn0.rcvs.nit.disa.mil/
           OCSP signing CA cert:   binary value]
           ]
           [
           OCSP url::   http://failover.ocsp.nsn0.rcvs.nit.disa.mil/
           OCSP signing CA cert:   binary value]
           ]
       ]
    3. 要显示当前的替代 OCSP 响应者设置,请运行此命令。
      sso-config.[bat|sh] -t tenantName -get_alt_ocsp]
      
    4. 要移除当前的替代 OCSP 响应者设置,请运行以下命令。
      sso-config.[bat|sh] -t tenantName -delete_alt_ocsp [-allSite] [-siteID pscSiteID_for_the_configuration]
      
  6. (可选) 要列出配置信息,请运行以下命令。
    sso-config.[bat|sh] -get_authn_policy -t tenantName