要在 RHEL 9.x/8.x 桌面上支持 True SSO,必须先将基础虚拟机 (VM) 与 Active Directory (AD) 域集成。然后,您必须修改系统上的某些配置才能支持 True SSO 功能。

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

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

前提条件

  • Workspace ONE Access 和 Horizon Connection Server配置 True SSO。
  • 确认基础虚拟机上的 DNS 可以解析 Active Directory (AD) 服务器。
  • 配置虚拟机的主机名。
  • 在虚拟机上配置网络时间协议 (NTP)。
  • 获取一个根证书颁发机构 (CA) 证书,并将其保存到虚拟机上的 /tmp/certificate.cer 中。请参阅如何导出根证书颁发机构证书

    如果从属 CA 也是颁发机构,则需获取包含根 CA 证书和从属 CA 证书的完整证书链,并将其保存到虚拟机上的 /tmp/certificate.cer 中。

  • 要在 FIPS 模式下使用 True SSO,请确保您已完成配置符合 FIPS 的 Linux 虚拟机中所述的所有步骤。您必须将 VMwareBlastServer 的可信 CA 证书添加到 /etc/vmware/ssl/rui.crt,并将与 rui.crt 配对的密钥添加到 /etc/vmware/ssl/rui.key

过程

  1. 在基础虚拟机上,验证与 Active Directory 的网络连接。
    realm discover mydomain.com
  2. 安装所需的依赖项包。
    yum install oddjob oddjob-mkhomedir sssd adcli samba-common-tools
  3. 加入 AD 域。
    realm join --verbose mydomain.com -U administrator
  4. 安装根 CA 证书或证书链。
    1. 找到您下载的根 CA 证书或证书链,并将其传输到 PEM 文件。
      openssl x509 -inform der -in /tmp/certificate.cer -out /tmp/certificate.pem
      
    2. 将证书复制到 /etc/sssd/pki/sssd_auth_ca_db.pem 文件中。
      sudo cp /tmp/certificate.pem /etc/sssd/pki/sssd_auth_ca_db.pem
  5. 修改 /etc/sssd/sssd.conf 配置文件,如以下示例中所示。
    [sssd]
    domains = mydomain.com
    config_file_version = 2
    services = nss, pam
     
    [domain/mydomain.com]
    ad_domain = mydomain.com
    krb5_realm = MYDOMAIN.COM
    realmd_tags = manages-system joined-with-adcli
    cache_credentials = True
    id_provider = ad
    krb5_store_password_if_offline = True
    default_shell = /bin/bash
    ldap_id_mapping = True
    use_fully_qualified_names = False             #Use short name for user
    fallback_homedir = /home/%u@%d
    access_provider = ad
    ad_gpo_map_interactive = +gdm-vmwcred         #Add this line for SSO
     
    [pam]                                         #Add pam section for certificate logon
    pam_cert_auth = True                          #Add this line to enable certificate logon for system
    pam_p11_allowed_services = +gdm-vmwcred       #Add this line to enable certificate logon for VMware Horizon Agent
     
    [certmap/mydomain.com/truesso]                #Add this section and following lines to set match and map rule for certificate user
    matchrule = <EKU>msScLogin
    maprule = (|(userPrincipal={subject_principal})(samAccountName={subject_principal.short_name}))
    domains = mydomain.com
    priority = 10
  6. 将模式设置为 644,以修改 /etc/krb5.conf 配置文件。
    注: 如果未按指定方式修改 /etc/krb5.conf,则 True SSO 功能可能无法正常使用。
  7. (RHEL 9.x) 要确保 TrueSSO 在即时克隆桌面池中正常工作,请修改以下配置。
    注: 如果未将虚拟机用于即时克隆桌面池,则可以跳过这些配置。
    1. 运行 命令以明确允许 SHA-1 加密策略。
      update-crypto-policies --set DEFAULT:SHA1
    2. 找到先前下载的根 CA 证书或证书链,并将其复制到 /etc/pki/ca-trust/source/anchors/ca_cert.pem。然后,使用 update-ca-trust 命令允许旧版应用程序能够读取受信任的证书。
      cp /tmp/certificate.pem /etc/pki/ca-trust/source/anchors/ca_cert.pem
      update-ca-trust
    3. 修改 /etc/krb5.conf 文件,如以下示例中所示。
      [realms]
           MYDOMAIN.COM = {
                kdc =  dnsserver.mydomain.com
                admin_server =  dnsserver.mydomain.com
                pkinit_anchors = DIR:/etc/pki/ca-trust/source/anchors
                pkinit_kdc_hostname =  dnsserver.mydomain.com
                pkinit_eku_checking = kpServerAuth
           }
      [domain_realm]
           .mydomain.com = MYDOMAIN.COM
           mydomain.com = MYDOMAIN.COM
  8. 安装 Horizon Agent 软件包并启用 True SSO。
    sudo ./install_viewagent.sh -T yes
  9. 修改 /etc/vmware/viewagent-custom.conf 配置文件,使其包含以下行。
    NetbiosDomain = MYDOMAIN
  10. 重新启动虚拟机,然后重新登录。