要在 Ubuntu 虚拟机 (VM) 上启用 True SSO 功能,请安装 True SSO 功能所依赖的库、支持受信任的身份验证的根证书颁发机构 (CA) 证书以及 Horizon Agent。如果 True SSO 身份验证也由从属 CA 颁发,则必须安装包含根 CA 证书和从属 CA 证书的完整证书链。要完成身份验证设置,必须编辑某些配置文件。

可以使用以下过程在 Ubuntu 虚拟机上启用 True SSO。

前提条件

过程

  1. 在 Ubuntu 虚拟机上,安装 pkcs11 支持软件包。
    sudo apt install libpam-pkcs11
  2. 安装 libnss3-tools 软件包。
    sudo apt install libnss3-tools
  3. 安装根 CA 证书或证书链。
    1. 找到您下载的根 CA 证书或证书链,并将其传输到 PEM 文件。
      openssl x509 -inform der -in /tmp/certificate.cer -out /tmp/certificate.pem
    2. 创建 /etc/pki/nssdb 目录以包含系统数据库。
      sudo mkdir -p /etc/pki/nssdb
    3. 使用 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
    4. 创建 /etc/pam_pkcs11/cacerts 目录,然后将根 CA 证书或证书链复制到该目录中。
      mkdir -p /etc/pam_pkcs11/cacerts
      sudo cp /tmp/certificate.pem /etc/pam_pkcs11/cacerts
    5. 为根 CA 证书或证书链创建哈希链接。在 /etc/pam_pkcs11/cacerts 目录中,运行以下命令。
      pkcs11_make_hash_link
  4. 安装 Horizon Agent 软件包并启用 True SSO。
    sudo ./install_viewagent.sh -T yes
  5. 将以下参数添加到 Horizon Agent 自定义配置文件 /etc/vmware/viewagent-custom.conf 中。使用以下示例,其中,NETBIOS_NAME_OF_DOMAIN 是您的组织的域的 NetBIOS 名称。
    NetbiosDomain=NETBIOS_NAME_OF_DOMAIN
  6. 编辑 /etc/pam_pkcs11/pam_pkcs11.conf 配置文件。
    1. 如果需要,请创建 /etc/pam_pkcs11/pam_pkcs11.conf 配置文件。在 /usr/share/doc/libpam-pkcs11/examples 中找到示例文件,将其复制到 /etc/pam_pkcs11 目录中,并将该文件重命名为 pam_pkcs11.conf。根据需要,将您的系统信息添加到文件内容中。
    2. 修改 /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
  7. 在 PAM 配置文件中修改 auth 参数。
    1. 打开位于以下位置的 PAM 配置文件:/etc/pam.d/gdm-vmwcred
    2. 编辑 PAM 配置文件,如以下示例中所示。
      auth requisite pam_vmw_cred.so
      auth sufficient pam_pkcs11.so try_first_pass
      
  8. 在 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 功能可能无法正常使用。
  9. 重新启动虚拟机,然后重新登录。