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

可以使用以下过程在 RHEL 7.x 或 CentOS 7.x 虚拟机上启用 True SSO。

该过程中的一些示例使用占位符值以表示网络配置中的实体,例如,AD 域的 DNS 名称。请将占位符值替换为您的配置特定的信息,如下表中所述。

占位符值 说明
dns_server DNS 名称服务器的路径
mydomain.com AD 域的 DNS 名称
MYDOMAIN.COM AD 域的 DNS 名称,全部为大写字母

前提条件

过程

  1. 安装 PKCS11 支持软件包组。
    sudo yum install -y nss-tools nss-pam-ldapd pam_krb5 krb5-libs krb5-workstation krb5-pkinit
  2. 安装根 CA 证书或证书链。
    1. 找到您下载的根 CA 证书或证书链,并将其传输到 PEM 文件。
      sudo 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 证书或证书链添加到 RHEL/CentOS 7.x 虚拟机上的受信任 CA 证书列表中,并使用 update-ca-trust 命令更新系统范围的信任存储配置。
      sudo cp /tmp/certificate.pem /etc/pki/ca-trust/source/anchors/ca_cert.pem
      sudo update-ca-trust
  3. 在系统的 SSSD 配置文件中修改您的域的相应部分,如以下示例中所示。
    [domain/mydomain.com]
    ad_domain = mydomain.com
    krb5_realm = MYDOMAIN.COM
    realmd_tags = manages-system joined-with-samba
    cache_credentials = True
    id_provider = ad
    krb5_store_password_if_offline = True
    default_shell = /bin/bash
    ldap_id_mapping = True
    #set the next line to false, so you can use the short name instead of the full domain name.
    use_fully_qualified_names = False   
    fallback_homedir = /home/%u@%d
    access_provider = ad
  4. 修改 Kerberos 配置文件 /etc/krb5.conf,如以下示例中所示。
    [libdefaults]
     dns_lookup_realm = false
     ticket_lifetime = 24h
     renew_lifetime = 7d
     forwardable = true
     rdns = false
     default_ccache_name = KEYRING:persistent:%{uid}
     # Add following line, if the system doesn't add it automatically
     default_realm = MYDOMAIN.COM
     
    [realms]
    MYDOMAIN.COM = {
      kdc = dns_server
      admin_server = dns_server
      # Add the following three lines for pkinit_*
      pkinit_anchors = DIR:/etc/pki/ca-trust/source/anchors
      pkinit_kdc_hostname = your_org_DNS_server
      pkinit_eku_checking = kpServerAuth
     }
    [domain_realm]
     mydomain.com = MYDOMAIN.COM
     .mydomain.com = MYDOMAIN.COM
    注: 您还必须在 /etc/krb5.conf 中将模式设置为 644。否则,True SSO 功能可能无法正常使用。
  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
  7. 重新启动虚拟机,然后重新登录。