要设置 Linux 桌面的单点登录 (SSO),您必须执行一些配置步骤。

VMware Horizon 8 单点登录模块会与 Linux 中的 PAM(可插入身份验证模块)通信,这不取决于您将 Linux 虚拟机与 Active Directory (AD) 集成所使用的方法。Horizon 8 SSO 可以用于 OpenLDAP 及 Winbind 这两种将 Linux 虚拟机与 AD 集成的解决方案。

默认情况下,SSO 假定 AD 的 sAMAccountName 属性是登录 ID。如果使用 OpenLDAP 或 Winbind 解决方案,您必须执行以下配置步骤以确保 SSO 使用正确的登录 ID:

  • 对于 OpenLDAP,将 sAMAccountName 设置为 uid
  • 对于 Winbind,将以下语句添加到配置文件 /etc/samba/smb.conf
    winbind use default domain = true
如果用户必须指定登录的域名,您必须在 Linux 桌面上设置 SSOUserFormat 选项。有关更多信息,请参阅 在 Linux 桌面上编辑配置文件。SSO 始终使用大写的短域名。例如,如果域是 mydomain.com,SSO 将使用 MYDOMAIN 作为域名。因此,在设置 SSOUserFormat 选项时必须指定 MYDOMAIN。关于短域名和长域名,请遵循以下规则:
  • 对于 OpenLDAP,您必须使用大写的短域名。
  • Winbind 同时支持长短两种域名。

AD 支持在登录名称中使用特殊字符,而 Linux 则不支持。因此,在设置 SSO 时,请不要在登录名称中使用特殊字符。

在 AD 中,如果用户的 UserPrincipalName (UPN) 属性和 sAMAccount 属性不匹配,而用户使用 UPN 登录,则 SSO 将失败。例如,如果您在 AD mycompany.com 中有一个用户 juser,但该用户的 UPN 设置为 [email protected] 而不是 [email protected],则 SSO 将失败。解决办法是,用户使用 sAMAccount 中存储的名称登录。例如,juser

Horizon Agent 不要求用户名区分大小写。您必须确保 Linux 操作系统可以处理不区分大小写的用户名。
  • 对于 Winbind,用户名默认不区分大小写。
  • 对于 OpenLDAP,Ubuntu 使用 NSCD 对用户进行身份验证,并且默认不区分大小写。
  • RHEL、Rocky Linux 和 CentOS 使用 SSSD 对用户进行身份验证,并且默认区分大小写。要更改该设置,请编辑文件 /etc/sssd/sssd.conf,并在 [domain/default] 部分添加以下行:
    case_sensitive = false

如果您的 Linux 虚拟机中安装了多个桌面环境,请参阅桌面环境来选择要用于 SSO 的桌面环境。