Linux Virtual Delivery Agent

配置联合身份验证服务

可以使用联合身份验证服务 (FAS) 对登录到 Linux VDA 的用户进行身份验证。 对于 FAS 登录功能,Linux VDA 将使用与 Windows VDA 相同的 Windows 环境 。 有关为 FAS 配置 Windows 环境的信息,请参阅联合身份验证服务。 本文提供了特定于 Linux VDA 的额外信息。

注意

Linux VDA 不支持会话中行为策略。

Linux VDA 使用短连接与 FAS 服务器传输数据。

Linux VDA 只能通过端口 80 与 FAS 服务器进行通信。

支持的发行版

FAS 支持有限的 Linux 平台和 AD 集成方法。 请参阅以下列表:

  Winbind SSSD Centrify PBIS Quest
Amazon Linux 2
RHEL 8.8/8.6/8.4/8.3/8.2/8.1
RHEL 7.9/7.8、CentOS 7.9/7.8
Rocky Linux 8.8/8.6
SUSE 15.3/15.2/12.5
Ubuntu 20.04/18.04

在 Linux VDA 上配置 FAS

设置 FAS 服务器

要在全新的 Linux VDA 安装中使用 FAS,请在运行 ctxinstall.sh 或 ctxsetup.sh 时键入每台 FAS 服务器的 FQDN。 由于 Linux VDA 不支持 AD 组策略,您可以改为提供以分号分隔的 FAS 服务器的列表。 如果删除了任何服务器地址,请使用 <none> 文本字符串填充其空白区域,并且不要修改服务器地址的顺序。

要升级现有的 Linux VDA 安装,可以重新运行 ctxsetup.sh 来设置 FAS 服务器。 或者,也可以运行以下命令来设置 FAS 服务器,并重新启动 ctxvda 服务以使设置生效。

  sudo /opt/Citrix/VDA/bin/ctxreg create -k "HKLM\Software\Citrix\VirtualDesktopAgent\Authentication\UserCredentialService" -t "REG_SZ" -v "Addresses" -d "<Your-FAS-Server-List>" --force

  service ctxjproxy restart

  service ctxvda restart
<!--NeedCopy-->

要通过 ctxreg 更新 FAS 服务器,请运行以下命令:

  sudo /opt/Citrix/VDA/bin/ctxreg update -k "HKLM\Software\Citrix\VirtualDesktopAgent\Authentication\UserCredentialService" -v "Addresses" -d "<Your-FAS-Server-List>"

  service ctxjproxy restart

  service ctxvda restart
<!--NeedCopy-->

安装证书

要验证用户的证书,请在 VDA 上安装根 CA 证书以及所有中间证书。 例如,要安装根 CA 证书,请从上文从 Microsoft CA 检索 CA 证书(在 AD 上)步骤中获取 AD 根证书,或者从根 CA 服务器 http://CA-SERVER/certsrv 下载其 DER 格式。

注意:

以下命令也适用于配置中间证书。

运行类似如下的命令将 DER 文件(.crt、.cer、.der)转换为 PEM:

  sudo openssl x509 -inform der -in root.cer -out root.pem
<!--NeedCopy-->

然后,运行类似如下的命令将根 CA 证书安装到 openssl 目录:

  sudo cp root.pem /etc/pki/CA/certs/
<!--NeedCopy-->

注意:

请勿将根 CA 证书置于 /root 路径下。 否则,FAS 无权读取根 CA 证书。

运行 ctxfascfg.sh

运行 ctxfascfg.sh 脚本以配置 FAS:

  sudo /opt/Citrix/VDA/sbin/ctxfascfg.sh
<!--NeedCopy-->

添加了环境变量,以便 ctxfascfg.sh 可以在无提示模式下运行:

  • CTX_FAS_ADINTEGRATIONWAY=winbind | sssd | centrify | pbis | quest:表示 Active Directory 集成方法,指定了 CTX_EASYINSTALL_ADINTEGRATIONWAY 时,等于 CTX_EASYINSTALL_ADINTEGRATIONWAY。 如果未指定 CTX_EASYINSTALL_ADINTEGRATIONWAYCTX_FAS_ADINTEGRATIONWAY 将使用自己的值设置。

  • CTX_FAS_CERT_PATH =<证书路径>:指定用于存储根证书和所有中间证书的完整路径。

  • CTX_FAS_KDC_HOSTNAME:在选择 PBIS 时指定密钥发行中心 (KDC) 的主机名。

  • CTX_FAS_PKINIT_KDC_HOSTNAME:指定 PKINIT KDC 主机名,除非另有说明,否则该名称为 CTX_FAS_KDC_HOSTNAME。

选择正确的 Active Directory 集成方法,然后键入正确的证书路径(例如,/etc/pki/CA/certs/)。

然后,该脚本会安装 krb5-pkinit 和 pam_krb5 软件包并设置相关的配置文件。

限制

  • FAS 尚不支持锁屏界面。 如果在会话中单击锁定按钮,则无法使用 FAS 重新登录该会话。
  • 此版本仅支持联合身份验证服务体系结构概述一文中概括的常见 FAS 部署,不包括 Windows 10 Azure AD 联接

故障排除

在对 FAS 进行故障排除之前,请确保已安装并正确配置 Linux VDA,并且可以使用密码身份验证在常用应用商店中成功启动非 FAS 会话。

如果非 FAS 会话正常运行,请将登录类别的 HDX 日志级别设置为“VERBOSE”,将 VDA 日志级别设置为“TRACE”。 有关如何为 Linux VDA 启用跟踪日志记录的信息,请参阅知识中心文章 CTX220130

FAS 服务器配置错误

从 FAS 应用商店启动会话失败。

检查 /var/log/xdl/hdx.log 并查找类似如下内容的错误日志:

  2021-01-28 01:42:16.164 <P26422:S4> citrix-ctxlogin: validate_user: [Logon Type] Federated Authentication Logon.

  2021-01-28 01:42:16.164 <P26422:S4> citrix-ctxlogin: validate_fas: entry

  2021-01-28 01:42:16.164 <P26422:S4> citrix-ctxlogin: connect_fas: start connect to server 0

  2021-01-28 01:42:16.164 <P26422:S4> citrix-ctxlogin: connect_fas0: failed to connect: Connection refused.

  2021-01-28 01:42:16.164 <P26422:S4> citrix-ctxlogin: validate_fas: failed to connect to server [0], please confirm if fas service list is well configurated in condb

  2021-01-28 01:42:16.164 <P26422:S4> citrix-ctxlogin: validate_fas: exit, 43

  2021-01-28 01:42:16.164 <P26422:S4> citrix-ctxlogin: validate_user: failed to validate fas credential

  2021-01-28 01:42:16.164 <P26422:S4> citrix-ctxlogin: LoginBoxValidate: failed validation of user 'user1@CTXDEV.LOCAL', INVALID_PARAMETER

<!--NeedCopy-->

解决方案

运行以下命令以验证 Citrix 注册表值“HKEY_LOCAL_MACHINE\SOFTWARE\Citrix\VirtualDesktopAgent\Authentication\UserCredentialService”是否设置为 <Your-FAS-Server-List>。

  sudo /opt/Citrix/VDA/bin/ctxreg dump | grep "UserCredentialService"
<!--NeedCopy-->

如果现有设置不正确,请按照前文设置 FAS 服务器步骤重新设置。

CA 证书配置错误

从 FAS 应用商店启动会话失败。 将显示一个灰色窗口,并且几秒钟后消失。

因根 CA 证书配置错误而使登录无效

检查 /var/log/xdl/hdx.log 并查找类似如下内容的错误日志:

  2021-01-28 01:47:46.210 <P30656:S5> citrix-ctxlogin: get_logon_certificate: entry

  2021-01-28 01:47:46.210 <P30656:S5> citrix-ctxlogin: check_caller: current process: pid [30656], name [/opt/Citrix/VDA/bin/ctxlogin]

  2021-01-28 01:47:46.210 <P30656:S5> citrix-ctxlogin: get_public_certificate: entry

  2021-01-28 01:47:46.211 <P30656:S5> citrix-ctxlogin: query_fas: waiting for response...

  2021-01-28 01:47:46.270 <P30656:S5> citrix-ctxlogin: query_fas: query to server success

  2021-01-28 01:47:46.270 <P30656:S5> citrix-ctxlogin: get_public_certificate: exit

  2021-01-28 01:47:46.270 <P30656:S5> citrix-ctxlogin: fas_base64_decode: input size 1888

  2021-01-28 01:47:46.271 <P30656:S5> citrix-ctxlogin: fas_base64_decode: output size 1415

  2021-01-28 01:47:46.271 <P30656:S5> citrix-ctxlogin: get_logon_certificate: get logon certificate success

  2021-01-28 01:47:46.271 <P30656:S5> citrix-ctxlogin: cache_certificate: cache certificate success

  2021-01-28 01:47:46.271 <P30656:S5> citrix-ctxlogin: get_logon_certificate: exit, 0

  2021-01-28 01:47:48.060 <P30656:S5> citrix-ctxlogin: validate_user: pam_authenticate err,can retry for user user1@CTXDEV.LOCAL
<!--NeedCopy-->

解决方案

验证您是否已在 /etc/krb5.conf 中正确设置了用于存储根 CA 证书和所有中间证书的完整路径。 完整路径如下所示:


   [realms]

  EXAMPLE.COM = {

      ......

      pkinit_anchors = DIR:/etc/pki/CA/certs/

      ......

  }  
<!--NeedCopy-->

如果现有设置不正确,请按照前面的 安装证书 步骤重新设置。

或者,检查根 CA 证书是否有效。

重影帐户映射错误

FAS 配置了 SAML 身份验证。 ADFS 用户在 ADFS 登录页面上输入用户名和密码后,可能会出现以下错误。

重影帐户映射错误

此错误表明已成功验证 ADFS 用户,但在 AD 上没有配置任何重影用户。

解决方案

在 AD 上设置重影帐户。

未配置 ADFS

尝试登录 FAS 应用商店过程中出现以下错误:

未配置 ADFS

当 FAS 应用商店配置为使用 SAML 身份验证,但缺少 ADFS 部署时,会出现此问题。

解决方案

为联合身份验证服务部署 ADFS IdP。 有关详细信息,请参阅联合身份验证服务 ADFS 部署

相关信息

已知问题

如果正在使用 FAS,则尝试启动包含非英语字符的已发布桌面或应用程序会话时,可能会失败。

启动包含非英语字符的会话失败

解决方法

右键单击 CA 工具中的管理模板,将 Citrix_SmartcardLogon 模板从基于此 Active Directory 信息构建更改为在请求中提供

请求选项中的供应