Skip to main content

2026 年 8 月 24 日

在 Ubuntu/Debian 桌面平台上設定「使用 SSSD 的 True SSO」

若要在 Ubuntu/Debian 桌面平台上啟用搭配 SSSD 的 True SSO,請使用 SSSD 解決方案將基礎虛擬機器 (VM) 與 Active Directory (AD) 網域整合。接著,在安裝 Horizon Agent 之前,請先安裝根憑證授權機構 (CA) 憑證,以支援受信任的驗證。

**附註:**為確保現有的 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 表示使用者將使用簡短名稱。

    新增 ad_gpo_map_interactive = +gdm-hzncred 這一行以支援 SSO

    僅在 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. 安裝啟用 True SSO 的 Horizon Agent 套件。

    sudo ./install_viewagent.sh -T yes
    
  9. 修改 /etc/omnissa/viewagent-custom.conf 組態檔,並加入下列一行。

```
NetbiosDomain = MYDOMAIN
```

11. 重新啟動虛擬機器,並重新登入。

此頁面對您有幫助嗎?

針對本主題提供意見回饋

本主題對您有幫助嗎?

請勿填寫任何個人或機密資訊。

正在產生連結…