要设置单点登录 (SSO),您必须执行一些配置步骤。
Horizon 单点登录模块会与 Linux 中的 PAM(可插入身份验证模块)通信,这不取决于您将 Linux 与 Active Directory (AD) 集成所使用的方法。Horizon 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 7 不要求用户名区分大小写。您必须确保 Linux 操作系统可以处理不区分大小写的用户名。
- 对于 Winbind,用户名默认不区分大小写。
- 对于 OpenLDAP,Ubuntu 使用 NSCD 对用户进行身份验证,并且默认不区分大小写。RHEL 和 CentOS 使用 SSSD 对用户进行身份验证,并且默认区分大小写。要更改该设置,请编辑文件 /etc/sssd/sssd.conf,并在
[domain/default]
部分添加以下行:case_sensitive = false
如果您的 Linux 桌面中安装了多个桌面环境,请参阅桌面环境来选择要用于 SSO 的桌面环境。