要在 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_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
- Debian
-
为 Omnissa Access 和 Horizon Connection Server 配置 True SSO。
-
获取一个根 CA 证书,并将其保存到 Ubuntu/Debian 虚拟机上的
/tmp/certificate.cer中。请参阅如何导出根证书颁发机构证书。如果从属 CA 也是颁发机构,则需获取包含根 CA 证书和从属 CA 证书的完整证书链,并将其保存到虚拟机上的
/tmp/certificate.cer中。
步骤
-
在基础虚拟机上,验证与 Active Directory 的网络连接。
sudo apt install -y realmd sudo realm discover mydomain.com -
安装所需的依赖项包。
sudo apt-get install sssd-tools sssd libnss-sss libpam-sss libpam-pkcs11 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配置文件,如以下示例中所示。注意:
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 -
更改
/etc/krb5.conf配置文件的访问模式,使其可编辑。sudo chmod 644 /etc/krb5.conf -
修改
/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 } -
安装 Horizon Agent 软件包并启用 True SSO。
sudo ./install_viewagent.sh -T yes -
修改
/etc/omnissa/viewagent-custom.conf配置文件,使其包含以下行。
```
NetbiosDomain = MYDOMAIN
```
11. 重新启动虚拟机,然后重新登录。
此页面对您有帮助吗?