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

注: 即时克隆 RHEL 8.x 桌面上不支持 True SSO。

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

占位符值 描述
mydomain.com AD 域的 DNS 名称
MYDOMAIN.COM AD 域的 DNS 名称,全部为大写字母
MYDOMAIN 您的 NetBIOS 域的名称

前提条件

  • Workspace ONE Access 和 Horizon Connection Server配置 True SSO。
  • 确认 RHEL/CentOS 8.x 基础虚拟机上的 DNS 可以解析 Active Directory (AD) 服务器。
  • 配置虚拟机的主机名。
  • 在虚拟机上配置网络时间协议 (NTP)。

过程

  1. 在 RHEL/CentOS 8.x 虚拟机上,验证与 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 证书,并将其作为 .pem 文件复制到所需的目录。
    # openssl x509 -inform der -in /tmp/certificate.cer -out /tmp/certificate.pem
    
    # 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 = IMYDOMAIN.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. 安装 Horizon Agent 软件包并启用 True SSO。
    # sudo ./install_viewagent.sh -T yes
  8. 修改 /etc/vmware/viewagent-custom.conf 配置文件,使其包含以下行。
    NetbiosDomain = MYDOMAIN
  9. 重新启动虚拟机,然后重新登录。