Skip to main content

2026 年 8 月 24 日

在 Ubuntu/Debian 桌面上配置“使用 SSSD 的 True SSO”

要在 Ubuntu/Debian 桌面上启用使用 SSSD 的 True SSO,需使用 SSSD 解决方案将基础虚拟机 (VM) 与 Active Directory (AD) 域集成在一起。随后,安装根证书颁发机构 (CA) 证书以支持受信任的身份验证,然后再安装 Horizon Agent。

**注意:**为确保现有 True SSO 配置在 Horizon 8 升级后可继续工作,您可能需要修改 /etc/sssd/sssd.conf。有关更多信息,请参阅升级到 Omnissa Horizon 8 2412 及更高版本

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

占位符值描述
dns_IP_ADDRESSDNS 名称服务器的 IP 地址
mydomain.comAD 域的 DNS 名称
MYDOMAIN.COMAD 域的 DNS 名称,全部为大写字母
myhostUbuntu/Debian 虚拟机的主机名
MYDOMAIN包含 Samba 服务器的工作组或 NT 域的 DNS 名称,全部为大写字母
ads-hostnameAD 服务器的主机名
admin-userAD 域管理员的用户名

必备条件

  • 确认该虚拟机正在运行以下分发包之一。

    • Ubuntu
    • Debian
  • 为 Omnissa Access 和 Horizon Connection Server 配置 True SSO。

  • 获取一个根 CA 证书,并将其保存到 Ubuntu/Debian 虚拟机上的 /tmp/certificate.cer 中。请参阅如何导出根证书颁发机构证书

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

步骤

  1. 在基础虚拟机上,验证与 Active Directory 的网络连接。

    sudo apt install -y realmd
    sudo realm discover mydomain.com
    
  2. 安装所需的依赖项包。

    sudo apt-get install sssd-tools sssd libnss-sss libpam-sss libpam-pkcs11 adcli samba-common-bin krb5-user krb5-pkinit
    
  3. 加入 AD 域。

    sudo realm join --verbose mydomain.com -U admin-user
    
  4. 安装根 CA 证书或证书链。

    1. 找到您下载的根 CA 证书或证书链,并将其传输到 PEM 文件。

      sudo 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 配置文件,如以下示例中所示。

    注意:

    use_fully_qualified_names = False 表示对用户使用短名称

    为 SSO 添加 ad_gpo_map_interactive = +gdm-hzncred

    仅为 Ubuntu 20.04 和 Debian 12 添加 ad_gpo_access_control = permissive 以修复 https://bugs.launchpad.net/ubuntu/+source/sssd/+bug/1934997

    添加以下 [pam] 代码行以使用证书登录。 pam_cert_auth 行用于为系统启用证书登录。 pam_p11_allowed_services 行用于为 Horizon Agent 启用证书登录。

    添加 [cert] 代码行,以便为证书用户设置匹配和映射规则。

    [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
    fallback_homedir = /home/%u@%d
    access_provider = ad
    ad_gpo_map_interactive = +gdm-hzncred
    ad_gpo_access_control = permissive
     
    [pam]
    pam_cert_auth = True
    pam_p11_allowed_services = +gdm-hzncred
     
    [certmap/mydomain.com/truesso]
    matchrule = <EKU>msScLogin
    maprule = (|(userPrincipal={subject_principal})(samAccountName={subject_principal.short_name}))
    domains = mydomain.com
    priority = 10
    
  6. 更改 /etc/krb5.conf 配置文件的访问模式,使其可编辑。

    sudo chmod 644 /etc/krb5.conf
    
  7. 修改 /etc/krb5.conf 文件,如以下示例中所示。

    kdc and pkinit_kdc_hostname specify Kerberos Key Distribution Center
    This can be found in output of "dig +short _kerberos._tcp.MYDOMAIN.COM SRV" or "nslookup -type=SRV _kerberos._tcp.dc._msdcs.mydomain.com"
    

    [realms] 部分中包含以下 PKINT 参数。

    pkinit_anchors specifies the directory containing trusted CA certificates for PKINIT
    pkinit_kdc_hostname: Hostname of the KDC for PKINIT
    pkinit_eku_checking: Controls Extended Key Usage checking (example, kpServerAuth)
    

    以下示例在 [realms] 部分中包含了 PKINT 参数。

    [realms]
    http://MYDOMAIN.COM  = {
    kdc =  http://dnsserver.mydomain.com 
    admin_server =  http://dnsserver.mydomain.com 
    pkinit_anchors = FILE:/etc/sssd/pki/sssd_auth_ca_db.pem
    pkinit_kdc_hostname =  http://dnsserver.mydomain.com 
    pkinit_eku_checking = kpServerAuth
    }
    
  8. 安装 Horizon Agent 软件包并启用 True SSO。

    sudo ./install_viewagent.sh -T yes
    
  9. 修改 /etc/omnissa/viewagent-custom.conf 配置文件,使其包含以下行。

```
NetbiosDomain = MYDOMAIN
```

11. 重新启动虚拟机,然后重新登录。

此页面对您有帮助吗?

对本主题提供反馈

本主题对您有帮助吗?

请勿填写任何个人信息或机密信息。

正在生成链接…