要在 Ubuntu/Debian 虚拟机 (VM) 上启用 True SSO 功能,请安装 True SSO 功能所依赖的库、支持受信任的身份验证的根证书颁发机构 (CA) 证书以及 Horizon Agent。如果 True SSO 身份验证也由从属 CA 颁发,则必须安装包含根 CA 证书和从属 CA 证书的完整证书链。要完成身份验证设置,必须编辑某些配置文件。
可以使用以下过程在 Ubuntu/Debian 虚拟机上启用“使用 Samba 的 True SSO”。
过程
- 在虚拟机上,安装 pkcs11 支持软件包。
sudo apt install libpam-pkcs11
- 安装 libnss3-tools 软件包。
sudo apt install libnss3-tools
- 安装根 CA 证书或证书链。
- 找到您下载的根 CA 证书或证书链,并将其传输到 PEM 文件。
sudo openssl x509 -inform der -in /tmp/certificate.cer -out /tmp/certificate.pem
- 创建 /etc/pki/nssdb 目录以包含系统数据库。
sudo mkdir -p /etc/pki/nssdb
- 使用 certutil 命令将根 CA 证书或证书链安装到系统数据库 /etc/pki/nssdb 中。
将以下示例命令中的“root CA cert”替换为系统数据库中根 CA 证书的名称。
sudo certutil -A -d /etc/pki/nssdb -n "root CA cert" -t "CT,C,C" -i /tmp/certificate.pem
- 创建 /etc/pam_pkcs11/cacerts 目录,然后将根 CA 证书或证书链复制到该目录中。
sudo mkdir -p /etc/pam_pkcs11/cacerts
sudo cp /tmp/certificate.pem /etc/pam_pkcs11/cacerts
- 为根 CA 证书或证书链创建哈希链接。在 /etc/pam_pkcs11/cacerts 目录中,运行以下命令。
sudo pkcs11_make_hash_link
- 安装 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
- 编辑 /etc/pam_pkcs11/pam_pkcs11.conf 配置文件。
- 如果需要,请创建 /etc/pam_pkcs11/pam_pkcs11.conf 配置文件。在 /usr/share/doc/libpam-pkcs11/examples 中找到示例文件,将其复制到 /etc/pam_pkcs11 目录中,并将该文件重命名为 pam_pkcs11.conf。根据需要,将您的系统信息添加到文件内容中。
- 修改 /etc/pam_pkcs11/pam_pkcs11.conf 配置文件,以使其包含类似于以下示例的内容。
注: 对于 Ubuntu 20.04 或更高版本,请将
ms
附加到
use_mappers
行的末尾。
use_pkcs11_module = coolkey;
pkcs11_module coolkey {
module = /usr/lib/vmware/viewagent/sso/libvmwpkcs11.so;
slot_num = 0;
ca_dir = /etc/pam_pkcs11/cacerts;
nss_dir = /etc/pki/nssdb;
}
mapper ms {
debug = false;
module = internal;
# module = /usr/$LIB/pam_pkcs11/ms_mapper.so;
ignorecase = false;
# ignore domain name
ignoredomain = true;
domain = "DOMAIN.COM"; #<== Replace "DOMAIN.COM" with your organization's domain name
}
use_mappers = digest, cn, pwent, uid, mail, subject, null, ms; #<== For Ubuntu 20.04 or later, append "ms" at end of use_mappers
- 在 Linux 终端中,将 /etc/krb5.conf 配置文件的访问权限设置为
644
,如以下示例中所示。
sudo chmod 644 /etc/krb5.conf
验证是否已修改权限。
ls -l /etc/krb5.conf
-rw-r--r-- 1 root root xxx xx xx xxxx /etc/krb5.conf
注: 如果未按指定方式修改
/etc/krb5.conf 的权限,True SSO 功能可能无法正常使用。
- 重新启动虚拟机,然后重新登录。