要在 SLED/SLES 虚拟机 (VM) 上启用 True SSO 功能,请安装 True SSO 功能所依赖的库、支持受信任的身份验证的根证书颁发机构 (CA) 证书以及 Horizon Agent。此外,您还必须编辑某些配置文件以完成身份验证设置。

可以使用以下过程在 SLED 或 SLES 虚拟机上启用 True SSO。

前提条件

过程

  1. 对于 SLED 15.x 或 SLES 12.x/15.x,请运行以下命令以安装所需的软件包。
    zypper install mozilla-nss-tools pam_krb5 krb5-client krb5-plugin-preauth-pkinit
  2. 对于 SLED 12.x,请执行以下步骤以安装所需的软件包。
    1. 将相应的 SLES .iso 文件下载到 SLED 虚拟机的本地磁盘(例如 /tmp/SLE-12-SP3-Server-DVD-x86_64-GM-DVD1.iso)中。
      您必须将 SLES .iso 文件添加为 SLED 系统的软件包源文件,因为所需的 krb5-plugin-preauth-pkinit 软件包仅适用于 SLES 系统。
    2. 在 SLED 系统上挂载 SLES .iso 文件,并安装所需的软件包。
      sudo mkdir -p /mnt/sles
      sudo mount -t iso9660 /tmp/SLE-12-SP3-Server-DVD-x86_64-GM-DVD1.iso /mnt/sles
      sudo zypper ar -f /mnt/sles sles
      zypper install mozilla-nss-tools pam_krb5 krb5-client krb5-plugin-preauth-pkinit
    3. 安装完成后,卸载 SLES .iso 文件。
      sudo unmount /mnt/sles
  3. 安装根 CA 证书或证书链。
    1. 找到您下载的根 CA 证书或证书链,并将其传输到 PEM 文件。
      openssl x509 -inform der -in /tmp/certificate.cer -out /tmp/certificate.pem
    2. 创建 /etc/pki/nssdb 目录以包含系统数据库。
      sudo mkdir -p /etc/pki/nssdb
    3. 使用 certutil 命令将根 CA 证书或证书链安装到系统数据库 /etc/pki/nssdb 中。
      将以下示例命令中的“root CA cert”替换为系统数据库中根 CA 证书的名称。
      sudo certutil -A -d /etc/pki/nssdb -n "root CA cert" -t "CT,C,C" -i /tmp/certificate.pem
      
    4. 将根 CA 证书添加到 pam_pkcs11 中。
      sudo cp /tmp/certificate.pem /etc/pki/ca-trust/source/anchors/ca_cert.pem
  4. 编辑 /etc/krb5.conf 配置文件,以使其具有类似于以下示例的内容。
    [libdefaults]
          default_realm = MYDOMAIN.COM
          dns_lookup_realm = false
          ticket_lifetime = 24h
          renew_lifetime = 7d
          forwardable = true
          rdns = false
          default_ccache_name = KEYRING:persistent:%{uid}
    
    [realms]
          MYDOMAIN.COM = {
                kdc = ads-hostname
                admin_server = ads-hostname 
                pkinit_anchors = DIR:/etc/pki/ca-trust/source/anchors
                pkinit_kdc_hostname = ADS-HOSTNAME
                pkinit_eku_checking = kpServerAuth
          }
    
    [domain_realm]
          .mydomain.com = MYDOMAIN.COM
          mydomain.com = MYDOMAIN.COM
    
    注: 您还必须在 /etc/krb5.conf 中将模式设置为 644。否则,True SSO 功能可能无法正常使用。
    将示例中的占位符值替换为您的网络配置特定的信息,如下表中所述。
    占位符值 说明
    mydomain.com AD 域的 DNS 名称
    MYDOMAIN.COM AD 域的 DNS 名称(全部为大写字母)
    ads-hostname AD 服务器的主机名
    ADS-HOSTNAME AD 服务器的主机名(全部为大写字母)
  5. 安装 Horizon Agent 软件包并启用 True SSO。
    sudo ./install_viewagent.sh -T yes
  6. 将以下参数添加到 Horizon Agent 自定义配置文件 /etc/vmware/viewagent-custom.conf 中。使用以下语法,其中,NETBIOS_NAME_OF_DOMAIN 是您组织的 NetBIOS 域的名称。
    NetbiosDomain=NETBIOS_NAME_OF_DOMAIN
    注: 对于 SLED/SLES 15.x,请始终使用 NetBIOS 域的长名称,例如 LXD.VDI。如果使用短名称,例如 LXD,则 True SSO 功能将无法正常使用。
  7. 重新启动虚拟机,然后重新登录。