若要在 SLED/SLES 虛擬機器 (VM) 上啟用 True SSO 功能,請安裝 True SSO 功能所依賴的程式庫、支援受信任驗證所需的根 CA 憑證,以及 Horizon Agent。此外,您還必須編輯某些組態檔以完成驗證設定。
請使用下列程序,在 SLED 或 SLES 虛擬機器上啟用 True SSO。
程序
- 針對 SLED 15.x 或 SLES 12.x/15.x,請執行下列命令以安裝必要的套件。
zypper install mozilla-nss-tools pam_krb5 krb5-client krb5-plugin-preauth-pkinit
- 針對 SLED 12.x,請執行下列步驟以安裝必要的套件。
- 將對應的 SLES .iso 檔案下載至 SLED 虛擬機器的本機磁碟 (例如 /tmp/SLE-12-SP3-Server-DVD-x86_64-GM-DVD1.iso)。
您必須新增 SLES .iso 檔案作為 SLED 系統的套件來源,因為目前只有適用於 SLES 系統的必要
krb5-plugin-preauth-pkinit 套件。
- 在 SLED 系統上掛接 SLES .iso 檔案,並安裝必要套件。
sudo mkdir -p /mnt/sles
sudo mount -t iso9660 /tmp/SLE-12-SP3-Server-DVD-x86_64-GM-DVD1.iso /mnt/sles
sudo zypper ar -f /mnt/sles sles
zypper install mozilla-nss-tools pam_krb5 krb5-client krb5-plugin-preauth-pkinit
- 安裝完成後,請將 SLES .iso 檔案取消掛接。
- 安裝根憑證授權機構 (CA) 憑證。
- 找出您所下載的根 CA 憑證,並將其傳輸至 .pem 檔案。
openssl x509 -inform der -in /tmp/certificate.cer -out /tmp/certificate.pem
- 使用 certutil命令將根 CA 憑證安裝至系統資料庫 /etc/pki/nssdb。
certutil -A -d /etc/pki/nssdb -n "root CA cert" -t "CT,C,C" -i /tmp/certificate.pem
- 將根 CA 憑證新增至 pam_pkcs11。
cp /tmp/certificate.pem /etc/pki/ca-trust/source/anchors/ca_cert.pem
- 編輯 /etc/krb5.conf 組態檔,使其具有類似下列範例的內容。
[libdefaults]
default_realm = MYDOMAIN.COM
dns_lookup_realm = false
ticket_lifetime = 24h
renew_lifetime = 7d
forwardable = true
rdns = false
default_ccache_name = KEYRING:persistent:%{uid}
[realms]
MYDOMAIN.COM = {
kdc = ads-hostname
admin_server = ads-hostname
pkinit_anchors = DIR:/etc/pki/ca-trust/source/anchors
pkinit_kdc_hostname = ADS-HOSTNAME
pkinit_eku_checking = kpServerAuth
}
[domain_realm]
.mydomain.com = MYDOMAIN.COM
mydomain.com = MYDOMAIN.COM
備註: 您也必須在
/etc/krb5.conf 中將模式設定為等於
644
。否則,True SSO 功能可能無法正常運作。
請將範例中的預留位置值取代為您的網路組態特有的資訊,如下表所說明。
預留位置值 |
說明 |
mydomain.com |
AD 網域的 DNS 名稱 |
MYDOMAIN.COM |
AD 網域的 DNS 名稱 (全部使用大寫字母) |
ads-hostname |
AD 伺服器的主機名稱 |
ADS-HOSTNAME |
AD 伺服器的主機名稱 (全部使用大寫字母) |
- 安裝 Horizon Agent 套件,並啟用 True SSO。
sudo ./install_viewagent.sh -T yes
- 將下列參數新增至 Horizon Agent 自訂組態檔 /etc/vmware/viewagent-custom.conf。請使用下列語法,其中 NETBIOS_NAME_OF_DOMAIN 是您組織的 NetBIOS 網域名稱。
NetbiosDomain=NETBIOS_NAME_OF_DOMAIN
備註: 對於 SLED/SLES 15.x,請一律使用 NetBIOS 網域的完整名稱,例如
LXD.VDI
。如果您使用簡短名稱,例如
LXD
,則 True SSO 功能將無法正常運作。
- 重新啟動虛擬機器,並重新登入。