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

請使用下列程序在 Ubuntu/Debian 虛擬機器上啟用「使用 SSSD 的 True SSO」。

此程序中的某些範例使用預留位置值來代表您網路組態中的實體,例如,您虛擬機器的主機名稱。請將預留位置值取代為您的組態特有的資訊,如下表所說明。

預留位置值 說明
dns_IP_ADDRESS DNS 名稱伺服器的 IP 位址
mydomain.com AD 網域的 DNS 名稱
MYDOMAIN.COM AD 網域的 DNS 名稱 (全部使用大寫字母)
myhost Ubuntu/Debian 虛擬機器的主機名稱
MYDOMAIN 包含 Samba 伺服器的工作群組或 NT 網域的 DNS 名稱 (全部使用大寫字母)
ads-hostname AD 伺服器的主機名稱
admin-user AD 網域管理員的使用者名稱

必要條件

  • 確認該虛擬機器正在執行下列其中一個發行版。
    • Ubuntu 22.04/20.04
    • Debian 12.x/11.x
    備註: Debian 10.x 桌面平台不支援「使用 SSSD 的 True SSO」。若要在 Debian 10.x 桌面平台上設定 True SSO,請依 為 Ubuntu/Debian 桌面平台設定「使用 Samba 的 True SSO」中所述,改用 Samba 網域加入解決方案。
  • 設定 Workspace ONE Access 和 Horizon Connection Server的 True SSO。
  • 取得根 CA 憑證,並將其儲存至 Ubuntu/Debian 虛擬機器上的 /tmp/certificate.cer。請參閱《如何匯出根憑證授權機構憑證》

    如果次級 CA 也是核發授權機構,請取得根和次級 CA 憑證的整個鏈結,並將其儲存至虛擬機器上的 /tmp/certificate.cer

程序

  1. 在基礎虛擬機器上,確認與 Active Directory 的網路連線。
    sudo realm discover mydomain.com
  2. 安裝所需的相依性套件。
    sudo apt-get install sssd-tools sssd libnss-sss libpam-sss 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 組態檔,如下列範例所示。
    [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
    ad_gpo_access_control = permissive #Only add this line for Ubuntu 20.04 and Debian 12 to fix https://bugs.launchpad.net/ubuntu/+source/sssd/+bug/1934997
     
    [pam] #Add pam section for certificate login
    pam_cert_auth = True #Add this line to enable certificate login for system
    pam_p11_allowed_services = +gdm-vmwcred #Add this line to enable certificate login 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. 變更 /etc/krb5.conf 組態檔的存取模式,使其可編輯。
    sudo chmod 644 /etc/krb5.conf
  7. 修改 /etc/krb5.conf/ 檔案,如下列範例所示。
    [realms]
     MYDOMAIN.COM = {
        kdc = kdcserver.mydomain.com
        admin_server = dnsserver.mydomain.com
        pkinit_anchors = DIR:/etc/sssd/pki
        pkinit_kdc_hostname = kdcserver.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. 重新啟動虛擬機器,並重新登入。