身份验证

客户端证书身份验证

重要提示:

  • 使用 StoreFront 时,Citrix Workspace 应用程序支持:
    • Citrix Access Gateway Enterprise Edition 版本 9.3
    • NetScaler Gateway 版本 10.x 到版本 11.0
    • Citrix Gateway 版本 11.1 及更高版本
  • 适用于 iOS 的 Citrix Workspace 应用程序支持客户端证书身份验证。
  • 只有 Access Gateway Enterprise Edition 9.x 和 10.x(以及更高版本)支持客户端证书身份验证。
  • 双来源身份验证类型必须为 CERT 和 LDAP。
  • Citrix Workspace 应用程序还支持可选的客户端证书身份验证。
  • 仅支持 P12 格式的证书。

此外,还可以根据向 Citrix Gateway 虚拟服务器呈现的客户端证书属性对登录此虚拟服务器的用户进行身份验证。也可以将客户端证书身份验证与另一种身份验证类型 LDAP 结合使用,以提供双来源身份验证。

管理员可以根据客户端证书属性对最终用户进行身份验证,如下所示:

  • 虚拟服务器上已启用客户端身份验证。
  • 虚拟服务器请求客户端证书。
  • 以在 Citrix Gateway 上将根证书与虚拟服务器绑定在一起。

当用户登录 Citrix Gateway 虚拟服务器时,进行身份验证后,用户可以从证书中的 SubjectAltName:OtherName:MicrosoftUniversalPrincipalName 字段中提取用户名和域信息。它采用格式 username@domain

当用户提取用户名和域并提供所需的信息(例如密码)时,身份验证完成。如果用户未提供有效的证书和凭据,或者如果用户名/域提取失败,身份验证将失败。

可以通过将默认身份验证类型设置为使用客户端证书,基于客户端证书对用户进行身份验证。还可以基于客户端 SSL 证书创建一个证书操作,用于定义身份验证过程中要执行的操作。

配置 XenApp 场

在 Citrix Virtual Apps 控制台或 Web Interface 控制台中为移动设备创建 XenApp 场。控制台取决于您已安装的 Citrix Virtual Apps 版本。

Citrix Workspace 应用程序使用 XenApp 场来获取有关用户有权访问的应用程序的信息。相同的信息将共享给设备上运行的应用程序。此方法与使用 Web Interface 建立传统的基于 SSL 的 Citrix Virtual Apps 连接的方式相似,在此类连接中,您可以配置 Citrix Gateway。

配置适用于移动设备的 Citrix Workspace 应用程序的 XenApp 场以支持来自 Citrix Gateway 的连接,如下所示:

  1. 在 XenApp 场中,选择 Manage secure client access(管理安全客户端访问)> Edit secure client access(编辑安全客户端访问)设置。
  2. 将访问方法改为 Gateway Direct(网关直接)。
  3. 输入 Citrix Gateway 设备的 FQDN。
  4. 输入 Secure Ticket Authority (STA) 信息。

配置 Citrix Gateway 设备

对于客户端证书身份验证,请为 Citrix Gateway 配置使用证书和 LDAP 身份验证策略的双重身份验证。要配置 Citrix Gateway 设备,请执行以下操作:

  1. 在 Citrix Gateway 上创建会话策略以允许来自 Citrix Workspace 应用程序的传入 Citrix Virtual Apps 连接。请指定新创建的 XenApp 场的位置。

    • 创建会话策略以标识连接来自 Citrix Workspace 应用程序。创建会话策略时,请配置以下表达式并选择“匹配所有表达式”作为表达式的运算符:

      REQ.HTTP.HEADER User-Agent CONTAINS CitrixWorkspace

    • 在会话策略关联的配置文件配置中,在 Security(安全)选项卡上,将 Default Authorization(默认授权)设置为 Allow(允许)。

      Published Applications(已发布的应用程序)选项卡上,如果设置不是全局设置(选中了“Override Global”(覆盖全局)复选框),请验证 ICA Proxy(ICA 代理)字段是否设置为 ON(开)。

      在 Web Interface 地址字段中,输入设备用户使用的 XenApp 场的 URL(其中包含 config.xml),例如:

      • /XenAppServerName/Citrix/PNAgent/config.xml 或
      • /XenAppServerName/CustomPath/config.xml。
    • 将会话策略绑定到虚拟服务器。

    • 为证书身份验证和 LDAP 身份验证创建身份验证策略

    • 将身份验证策略绑定到虚拟服务器。

    • 将虚拟服务器配置为在 TLS 握手中请求客户端证书。为此,请导航到证书 > 打开 SSL 参数 > 客户端身份验证 > 将客户端证书设置为强制

    重要提示:

    如果在 Citrix Gateway 上使用的服务器证书是证书链的一部分。例如,如果它是中间证书,则将证书安装在 Citrix Gateway 上。有关安装证书的详细信息,请参阅 Citrix Gateway 文档。

配置移动设备

如果在 Citrix Gateway 上启用了客户端证书身份验证,则将基于客户端证书的某些属性对用户进行身份验证。完成身份验证后,可以从证书中提取用户名和域。可以为每个用户应用特定的策略。

  1. 在 Citrix Workspace 应用程序中,打开帐户,然后在“服务器”字段中键入 Citrix Gateway 服务器的匹配 FQDN。例如,GatewayClientCertificateServer.organization.com。Citrix Workspace 应用程序将自动检测是否需要客户端证书。
  2. 用户可以安装一个新证书,也可以从已安装的证书列表中选择一个证书。对于 iOS 客户端证书身份验证,请仅从 Citrix Workspace 应用程序下载并安装证书。
  3. 选择有效证书后,登录屏幕上的用户名和域字段将使用证书中的用户名进行预填充。最终用户可以键入其他详细信息,包括密码。
  4. 如果将客户端证书身份验证设置为可选,用户可以通过在证书页面上按 Back(返回)跳过证书选项。在此情况下,Citrix Workspace 应用程序将继续进行连接,并向用户提供登录屏幕。
  5. 用户完成初始登录后,无需再次提供证书即可启动应用程序。Citrix Workspace 应用程序将存储帐户的证书,并自动使用这些证书执行将来的登录请求。

为身份验证过程配置重写策略

管理员可以将用于身份验证过程的浏览器从嵌入式浏览器切换到系统浏览器。只有在本地 Citrix Gateway 和 StoreFront 部署中配置了高级身份验证策略时才有可能。要配置高级身份验证策略,请使用 NetScaler 命令行配置 NetScaler 重写策略:

  1. enable ns feature REWRITE
  2. add rewrite action insert_auth_browser_type_hdr_act insert_http_header X-Auth-WebBrowser "\"System\""
  3. add rewrite policy insert_auth_browser_type_hdr_pol "HTTP.REQ.URL.EQ(\"/cgi/authenticate\")" insert_auth_browser_type_hdr_act
  4. bind vpn vserver <VPN-vserver-Name> -policy insert_auth_browser_type_hdr_pol -priority 10 -gotoPriorityExpression END -type AAA_RESPONSE

移至系统浏览器可提供更多功能,例如:

  • 使用基于证书的身份验证可获得更好的体验。
  • 能够在身份验证过程中使用设备密钥库中的现有用户证书。
  • 支持少数第三方身份验证器,例如 SITHS eID。

如果管理员尚未配置上述重写策略,则使用嵌入式浏览器作为身份验证的默认浏览器。

下表列出了基于 NetScaler Gateway 和 Global App Config Service 上的配置进行身份验证的浏览器:

NetScaler Gateway Global App Configuration Service 用于身份验证的浏览器
系统 系统 系统
系统 嵌入式 系统
嵌入式 系统 系统
嵌入式 嵌入式 嵌入式
未配置 系统 系统
未配置 嵌入式 嵌入式

支持对本地应用商店执行基于证书的身份验证

最终用户现在可以处理基于证书的身份验证,其中,证书将保存到设备钥匙串中。登录时,Citrix Workspace 应用程序会检测您的设备上的证书列表,您可以选择用于身份验证的证书。

重要提示:

选择证书后,所做的选择将在下次 Citrix Workspace 应用程序启动时保留。要选择其他证书,您可以从 iOS 设备设置中“还原 Safari”或者重新安装 Citrix Workspace 应用程序。

Safari 视图控制器

注意:

此功能支持本地部署。

要配置:

  1. 导航到 Global App Configuration Store Settings API(Global App Configuration 应用商店设置 API)URL,然后输入云应用商店 URL。 例如,https://discovery.cem.cloud.us/ads/root/url/<hash coded store URL>/product/workspace/os/ios
  2. 导航到 API Exploration(API 探索)> SettingsController > postDiscoveryApiUsingPOST > 单击 POST
  3. 单击 INVOKE API(调用 API)。
  4. 输入并上载有效负载详细信息。选择以下值之一:

    • “Embedded”:您可以使用 WKWebView。默认设置此选项。
    • “system”:您可以使用 Safari 视图控制器。

    例如,

    "category": "Authentication",
    "userOverride": false,
    "settings": [
    { "name": "Web Browser to use for Authentication", "value": "*Embedded*/*System*" },
    <!--NeedCopy-->
    

    在 iOS 或 iPad 设备上,管理员可以切换用于身份验证过程的浏览器。在本地 Citrix Gateway 和 StoreFront 部署中配置高级身份验证策略后,您可以从嵌入式浏览器切换到系统浏览器。有关详细信息,请参阅为身份验证过程配置重写策略

  5. 单击 EXECUTE(执行)以推送服务。

智能卡

Citrix Workspace 应用程序仅支持使用 SITHS 智能卡建立会话中连接。

如果使用 FIPS Citrix Gateway 设备,请将您的系统配置为拒绝 SSL 重新协商。有关详细信息,请参阅知识中心文章 CTX123680

以下产品和配置受支持:

  • 支持的读卡器:
    • Precise Biometrics Tactivo for iPad Mini 固件版本 3.8.0
    • Precise Biometrics Tactivo for iPad(第四代)、Tactivo for iPad(第三代)以及 iPad 2 固件版本 3.8.0
    • BaiMobile® 301MP 和 301MP-L 智能卡读卡器
    • Thursby PKard USB 读卡器
    • Feitian iR301 USB 读卡器
    • 符合 Type-C CCID 标准的读取器
  • 支持的 VDA 智能卡中间件
    • ActiveIdentity
  • 支持的智能卡:
    • PIV 卡
    • 通用访问卡 (CAC)
  • 支持的配置:
    • 通过智能卡身份验证登录配置了 StoreFront 2.x 的 Citrix Gateway 以及 XenDesktop 7.x 或更高版本或者 XenApp 6.5 或更高版本

配置 Citrix Workspace 应用程序以访问应用程序

  1. 如果要将 Citrix Workspace 应用程序配置为在您创建帐户时自动访问应用程序,请在“地址”字段中键入应用商店的匹配 URL。例如:

    • StoreFront.organization.com
    • netscalervserver.organization.com
  2. 使用智能卡进行身份验证时,请选择使用智能卡选项。

注意:

登录到应用商店的有效期为一小时。一小时后,用户必须重新登录,以刷新或启动其他应用程序。

YubiKey 支持智能卡身份验证

您现在可以使用 YubiKey 执行智能卡身份验证。此功能为 VDA 会话中的 Citrix Workspace 应用程序、虚拟会话和已发布的应用程序提供单设备身份验证体验。它无需连接智能卡读卡器或其他外部身份验证器。由于 YubiKey 支持多种协议(例如 OTP、FIDO 等),因此,它简化了最终用户体验。

要登录 Citrix Workspace 应用程序,最终用户需要将 YubiKey 插入其 iPhone 或 iPad,打开智能卡开关,并提供其应用商店 URL。

注意:

此功能仅支持在 StoreFront 部署中直接连接到 Citrix Workspace 应用程序,不支持通过 Citrix Gateway 直接连接。YubiKey 支持通过 Citrix Gateway 进行智能卡身份验证的功能将在将来的版本中推出。 适用于 iOS 的 Citrix Workspace 应用程序仅支持 YubiKey 5 系列。有关 YubiKey 的详细信息,请参阅 YubiKey 5 series(YubiKey 5 系列)。

支持在智能卡身份验证中使用多个证书

以前,适用于 iOS 的 Citrix Workspace 应用程序显示连接的智能卡的第一个插槽上可用的证书。

自 24.1.0 版本起,适用于 iOS 的 Citrix Workspace 应用程序将显示智能卡上可用的所有证书。此功能允许您在通过智能卡身份验证进行身份验证时选择所需的证书。

选择证书

RSA SecurID 身份验证

Citrix Workspace 应用程序支持用于 Secure Web Gateway 配置的 RSA SecurID。这些配置是通过 Web Interface 进行的,适用于所有 Citrix Gateway 配置。

适用于 iOS 的 Citrix Workspace 应用程序上软件令牌所需的 URL 方案: Citrix Workspace 应用程序使用的 RSA SecurID 软件令牌仅注册了 URL 方案 com.citrix.securid。

如果最终用户在其 iOS 设备上同时安装了 Citrix Workspace 应用程序和 RSA SecurID 应用程序,则必须选择 URL 方案 com.citrix.securid,以将 RSA SecurID Software Authenticator(软件令牌)导入到其设备上的 Citrix Workspace 应用程序中。

导入 RSA SecurID 软令牌

要在 Citrix Workspace 应用程序中使用 RSA 软令牌,作为管理员,请确保最终用户遵循:

  • 针对 PIN 码长度的策略
  • PIN 码的类型(仅限数字和字母数字)
  • 重复使用 PIN 码的限制

在最终用户成功通过 RSA 服务器的身份验证后,最终用户只需设置 PIN 码一次。PIN 码验证后,他们还将通过 StoreFront 服务器进行身份验证。完成所有验证后,Workspace 应用程序将显示可用的已发布应用程序和桌面。

使用 RSA 软令牌

  1. 导入贵组织向您提供的 RSA 软令牌。

  2. 在附加了 SecurID 文件的电子邮件中,选择 Open in Workspace(在 Workspace 中打开)作为导入目标位置。导入软令牌后,Citrix Workspace 应用程序将自动打开。

  3. 如果贵组织提供了密码以完成导入,请输入贵组织向您提供的密码,然后单击确定。单击确定后,系统将显示一条消息,提示您令牌已成功导入。

  4. 关闭导入消息,然后在 Citrix Workspace 应用程序中轻按添加帐户

  5. 输入贵组织提供的应用商店的 URL 并单击下一步

  6. 在“登录”屏幕上,输入您的凭据:用户名、密码和域。对于“PIN”字段,除非贵组织向您提供了不同的默认 PIN,否则,请输入 0000。PIN 0000 是 RSA 的默认值,但贵组织可能会更改该值,使其遵从自己的安全策略。

  7. 单击左上角的登录。此时将显示一条用于创建 PIN 码的消息。

  8. 输入长度为 4 到 8 位数的 PIN 码,然后单击确定。此时将显示一条消息,用于验证您的新 PIN 码。
  9. 重新输入您的 PIN 码,然后单击确定。现在,您可以访问自己的应用程序和桌面。

下一个令牌代码

当您使用 RSA SecurID 身份验证配置 Citrix Gateway 时,Citrix Workspace 应用程序支持下一个令牌代码功能。如果输入了三个错误的密码,Citrix Gateway 插件上将显示一条错误消息。要登录,请等待下一个令牌。可将 RSA 服务器配置为在用户使用错误密码登录次数过多时,禁用该用户帐户。

派生凭据

支持在 Citrix Workspace 应用程序中使用 Purebred 派生凭据。连接到允许使用派生凭据的应用商店时,用户可以使用虚拟智能卡登录 Citrix Workspace 应用程序。仅本地部署支持此功能。

注意:

要使用此功能,需要运行 Citrix Virtual Apps and Desktops 7 1808 或更高版本。

要在 Citrix Workspace 应用程序中启用派生凭据,请执行以下操作:

  1. 转至设置 > 高级 > 派生凭据
  2. 轻按使用派生凭据

要创建虚拟智能卡以与派生凭据结合使用,请执行以下操作:

  1. 设置 > 高级 > 派生凭据中,轻按 Add New Virtual Smart Card(添加新虚拟智能卡)。
  2. 编辑虚拟智能卡的名称。
  3. 输入 8 位仅限数字的 PIN 并进行确认。
  4. 轻按下一步
  5. 在“身份验证证书”下方,轻按导入证书…
  6. 此时将显示文档选取器。轻按浏览
  7. 在“位置”下方,选择 Purebred Key Chain(Purebred 钥匙串)。
  8. 从列表中选择合适的身份验证证书。
  9. 轻按导入密钥
  10. 如果需要,请对数字签名证书和加密证书重复执行步骤 5-9。
  11. 轻按保存

最多可以为您的虚拟智能卡导入三个或更少的证书。需要身份验证证书,虚拟智能卡才能正确运行。可以添加加密证书和数字签名证书以在 VDA 会话中使用。

注意:

连接到 HDX 会话时,创建的虚拟智能卡会重定向到该会话。

已知限制

  • 用户一次只能有一个活动卡。
  • 虚拟智能卡创建后不能编辑。删除并创建智能卡。
  • 最多可以输入十次无效 PIN 码。如果在尝试十次后无效,则将删除虚拟智能卡。
  • 选择派生凭据时,虚拟智能卡将覆盖物理智能卡。

WKWebView 的用户-代理字符串

默认情况下,在通过 WKWebView 发起的某些网络请求期间使用的用户代理字符串现在包含 Citrix Workspace 应用程序标识符。

因此,用户代理字符串已从: Mozilla/5.0 (iPhone; CPU iPhone OS 15_2 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148 AuthManager/3.2.4.0

更改为以下选项之一:

Mozilla/5.0 (iPhone; CPU iPhone OS 15_0 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148 CWA/23.3.0 iOS/15.0 X1Class CWACapable 302RedirectionCapable CFNetwork Darwin CWA-iPhone(iPhone 示例)

Mozilla/5.0 (iPhone; CPU iPhone OS 15_0 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148 CWA/23.3.0 iOS/15.0 X1Class CWACapable 302RedirectionCapable CFNetwork Darwin CWA-iPad(iPad 示例)

nFactor 身份验证

支持多重 (nFactor) 身份验证

多重身份验证要求用户提供多个身份证明以获得访问权限,从而增强了应用程序的安全性。多重身份验证使得身份验证步骤和关联的凭据收集表单可由管理员配置。

本机 Citrix Workspace 应用程序可以通过在已针对 StoreFront 实现的表单登录支持的基础上构建来支持此协议。Citrix Gateway 的 Web 登录页面和流量管理器虚拟服务器也使用此协议。

有关详细信息,请参阅 SAML 身份验证多重 (nFactor) 身份验证

限制:

  • 启用了 nFactor 支持后,您无法使用生物特征识别身份验证,如 Touch ID 和面容 ID。

nFactor 高级身份验证策略支持

通过 Citrix Gateway 上的 nFactor 高级身份验证策略进行配置时,我们现在支持在 Citrix Workspace 应用程序中使用基于证书的身份验证。nFactor 身份验证可帮助配置灵活、敏捷的多重架构。

用户代理字符串:

在 iPhone 或 iPad 上对 Citrix Workspace 应用程序执行高级 (nFactor) 身份验证时,身份验证过程被重定向到嵌入式 WebView。生成的用户代理字符串可能会略有差别,具体取决于操作系统版本、CWA 内部版本、设备型号和 AuthManager 版本。例如,以 iPhone 和 iPad 的以下用户代理字符串为例。

对于 iPhone:

Mozilla/5.0 (iPhone; CPU iPhone OS 16_2 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148 CWA/23.5.0 iOS/16.2 X1Class CWACapable 302RedirectionCapable CFNetwork Darwin CWA-iPhone AuthManager/3.3.0.0

对于 iPad:

Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_6) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148 CWA/23.5.0 iOS/15.0 X1Class CWACapable 302RedirectionCapable CFNetwork Darwin CWA-iPad AuthManager/3.3.0.0

此功能在预览版中提供。可以根据要求使用 Podio 链接或者联系 Citrix 技术支持将其启用。但是,它最终将在预览结束后向每位客户推出。

注意:

  • 版本或设备型号信息可能因环境而异。
  • 要在身份验证期间应用适用于 iOS 的 Citrix Workspace 应用程序特定的基于用户代理的策略,请使用以下关键字:
    • iOS
    • CWA
    • CWACapable

支持基于 FIDO2 的身份验证

适用于 iOS 的 Citrix Workspace 应用程序现在支持在 Citrix Virtual Apps and Desktops 会话中使用基于 FIDO2 的身份验证方法进行无密码身份验证。此功能允许用户使用支持 FIDO2 的 Yubico 安全密钥在 Google Chrome 或 Microsoft Edge 等浏览器中登录支持 WebAuthn 的 Web 站点。只需打开支持 WebAuthn 的 Web 站点即可触发无密码身份验证。 仅支持基于闪电端口的设备(不支持带 USB-C 或 USB 4 端口的设备)。不支持使用无密码身份验证登录 Citrix Workspace 应用程序或桌面会话。

有关必备条件的详细信息,请参阅 Citrix Virtual Apps and Desktops 文档中的使用 FIDO2 进行本地授权和虚拟身份验证

支持在本地部署中配置身份验证令牌的存储

适用于 iOS 的 Citrix Workspace 应用程序现在提供一个选项,用于在本地磁盘上为本地存储配置身份验证令牌的存储。使用此功能,您可以禁用身份验证令牌的存储以增强安全性。禁用后,当系统或会话重新启动时,您需要再次进行身份验证才能访问会话。

要使用管理配置文件在本地部署中禁用身份验证令牌的存储,请执行以下操作:

  1. 使用文本编辑器打开 web.config 文件,该文件通常位于 C:\inetpub\wwwroot\Citrix\Roaming directory
  2. 在该文件中找到用户帐户元素(您的部署的帐户名称为 store)。 例如: <account id=... name="Store">
  3. </account> 标记之前,导航到该用户帐户的属性并添加以下内容:
    <properties>   
        <property name="TokenPersistence" value="false" />  
    </properties>
<!--NeedCopy-->

下面是 web.config 文件的示例:

    <account id="#########################################" name="Store Service"
        description="" published="true" updaterType="None" remoteAccessType="StoresOnly">
        <annotatedServices>
            <clear />
            <annotatedServiceRecord serviceRef="1__Citrix_Store">
                <metadata>
                    <plugins>
                        <clear />
                    </plugins>
                    <trustSettings>
                        <clear />
                    </trustSettings>
                    <properties>
                        <clear />
                        <property name="TokenPersistence" value="false" />
                     </properties>
                </metadata>
            </annotatedServiceRecord>
        </annotatedServices>
        <metadata>
        <plugins>
          <clear />
        </plugins>
        <trustSettings>
          <clear />
        </trustSettings>
        <properties>
        </properties>
     </metadata>
    </account>
<!--NeedCopy-->