要在 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 系统的软件包源文件,因为所需的
krb5-plugin-preauth-pkinit 软件包仅适用于 SLES 系统。
- 在 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 文件。
- 安装根证书颁发机构 (Certification Authority, 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 功能将无法正常使用。
- 重新启动虚拟机,然后重新登录。