若要在 Ubuntu/Debian 桌面平台上啟用 True SSO,請使用 SSSD 解決方案將基礎虛擬機器 (VM) 與 Active Directory (AD) 網域整合在一起。接著,在安裝 Horizon Agent 之前,請先安裝根憑證授權機構 (CA) 憑證,以支援受信任的驗證。
請使用下列程序在 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,請改用 Samba 網域加入方法,如為 Ubuntu/Debian 桌面平台設定「使用 Samba 的 True SSO」中所述。
-
為 Omnissa Access 和 Horizon Connection Server 設定 True SSO。
-
取得根 CA 憑證,並將其儲存至 Ubuntu/Debian 虛擬機器上的
/tmp/certificate.cer。請參閱如何匯出根憑證授權機構憑證。如果子憑證授權機構 (CA) 也是核發授權機構,則需取得根 CA 和子 CA 的完整憑證鏈結,並將其儲存到虛擬機器上的
/tmp/certificate.cer。
程序
-
在基礎虛擬機器上,確認與 Active Directory 的網路連線。
sudo realm discover mydomain.com -
安裝所需的相依性套件。
sudo apt-get install sssd-tools sssd libnss-sss libpam-sss adcli samba-common-bin krb5-user krb5-pkinit -
加入 AD 網域。
sudo realm join --verbose mydomain.com -U admin-user -
安裝根 CA 憑證或憑證鏈結。
-
找出您所下載的根 CA 憑證或憑證鏈結,並將其傳輸至 PEM 檔案。
sudo openssl x509 -inform der -in /tmp/certificate.cer -out /tmp/certificate.pem -
將憑證複製到
/etc/sssd/pki/sssd_auth_ca_db.pem檔案。sudo cp /tmp/certificate.pem /etc/sssd/pki/sssd_auth_ca_db.pem
-
-
修改
/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 #For SSO, you can add this line for ad_gpo_map_interactive and set equal to a +gdm value. You must obtain from Omnissa Support the appropriate value for your specific Horizon version 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 #To enable certificate logon for Horizon Agent, you can add this line for pam_p11_allowed_services and set equal to a +gdm value. You must obtain from Omnissa Support the appropriate value for your specific Horizon version [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 -
將
/etc/krb5.conf組態檔的存取模式變更為可編輯。sudo chmod 644 /etc/krb5.conf -
修改
/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 -
安裝啟用 True SSO 的 Horizon Agent 套件。
sudo ./install_viewagent.sh -T yes -
修改
viewagent-custom.conf組態檔,並加入下列一行。NetbiosDomain = MYDOMAIN -
重新啟動虛擬機器,並重新登入。
此頁面對您有幫助嗎?