要在 RHEL 9.x/8.x 桌面上支持 True SSO,必须先将基础虚拟机 (VM) 与 Active Directory (AD) 域集成。然后,您必须修改系统上的某些配置才能支持 True SSO 功能。
该过程中的一些示例使用占位符值以表示网络配置中的实体,例如,AD 域的 DNS 名称。请将占位符值替换为您的配置特定的信息,如下表中所述。
占位符值 |
说明 |
mydomain.com |
AD 域的 DNS 名称 |
MYDOMAIN.COM |
AD 域的 DNS 名称,全部为大写字母 |
MYDOMAIN |
您的 NetBIOS 域的名称 |
dnsserver.mydomain.com |
DNS 服务器的名称 |
过程
- 在基础虚拟机上,验证与 Active Directory 的网络连接。
sudo realm discover mydomain.com
- 安装所需的依赖项包。
sudo yum install oddjob oddjob-mkhomedir sssd adcli samba-common-tools
- 加入 AD 域。
sudo realm join --verbose mydomain.com -U administrator
- 安装根 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 = +gdm-vmwcred #Add this line for SSO
[pam] #Add pam section for certificate logon
pam_cert_auth = True #Add this line to enable certificate logon for system
pam_p11_allowed_services = +gdm-vmwcred #Add this line to enable certificate logon 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
- 将模式设置为
644
,以修改 /etc/krb5.conf 配置文件。
注: 如果未按指定方式修改
/etc/krb5.conf,则 True SSO 功能可能无法正常使用。
- (RHEL 9.x) 要确保 TrueSSO 在即时克隆桌面池中正常工作,请修改以下配置。
注: 如果未将虚拟机用于即时克隆桌面池,则可以跳过这些配置。
- 运行相应命令以明确允许 SHA-1 加密策略。
sudo update-crypto-policies --set DEFAULT:SHA1
- 找到先前下载的根 CA 证书或证书链,并将其复制到 /etc/pki/ca-trust/source/anchors/ca_cert.pem。然后,使用
update-ca-trust
命令允许旧版应用程序能够读取受信任的证书。
sudo cp /tmp/certificate.pem /etc/pki/ca-trust/source/anchors/ca_cert.pem
sudo update-ca-trust
- 修改 /etc/krb5.conf 文件,如以下示例中所示。
[realms]
MYDOMAIN.COM = {
kdc = dnsserver.mydomain.com
admin_server = dnsserver.mydomain.com
pkinit_anchors = DIR:/etc/pki/ca-trust/source/anchors
pkinit_kdc_hostname = dnsserver.mydomain.com
pkinit_eku_checking = kpServerAuth
}
[domain_realm]
.mydomain.com = MYDOMAIN.COM
mydomain.com = MYDOMAIN.COM
- 安装 Horizon Agent 软件包并启用 True SSO。
sudo ./install_viewagent.sh -T yes
- 修改 /etc/vmware/viewagent-custom.conf 配置文件,使其包含以下行。
- 重新启动虚拟机,然后重新登录。