使用本地 Citrix Gateway 作为身份提供程序将域直通到 Citrix Workspace

重要提示:

本文有助于配置域直通身份验证。如果您已将本地 Gateway 设置为 IdP,请跳至在 Citrix Gateway 中将域直通配置为身份验证方法部分。

  • Citrix Cloud™ 支持使用本地 Citrix Gateway 作为身份提供程序,对登录其工作区的订阅者进行身份验证。

  • 通过使用 Citrix Gateway 身份验证,您可以:

  • 继续通过现有 Citrix Gateway 对用户进行身份验证,以便他们可以通过 Citrix Workspace 访问本地 Virtual Apps and Desktops 部署中的资源。
  • 将 Citrix Gateway 身份验证、授权和审计功能与 Citrix Workspace 结合使用。
  • 通过 Citrix Workspace 为用户提供其所需的资源访问权限,并使用直通身份验证、智能卡、安全令牌、条件访问策略、联合等功能。

  • Citrix Gateway 身份验证支持以下产品版本:

  • Citrix Gateway 13.1.4.43 Advanced edition 或更高版本

必备条件:

-  Cloud Connectors - 您需要至少两台服务器来安装 Citrix Cloud Connector™ 软件。
-  一个 Active Directory,并确保已注册该域。
-  Citrix Gateway 要求
-  由于经典策略已弃用,请在本地网关上使用高级策略。
-  在配置 Gateway 以对 Citrix Workspace 订阅者进行身份验证时,网关充当 OpenID Connect 提供程序。Citrix Cloud 和 Gateway 之间的消息符合 OIDC 协议,其中涉及对令牌进行数字签名。因此,您必须配置一个证书来签署这些令牌。
-  时钟同步 – Citrix Gateway 必须与 NTP 时间同步。
  • 有关详细信息,请参阅 Citrix Cloud 文档中的必备条件

在创建 OAuth IdP 策略之前,您需要首先设置 Citrix Workspace 或 Cloud,以使用 Gateway 作为 IdP 中的身份验证选项。有关如何设置的详细信息,请参阅将本地 Citrix Gateway 连接到 Citrix Cloud。完成设置后,将生成创建 OAuth IdP 策略所需的 Client ID、Secret 和 Redirect URL。

如果您使用的是 Internet Explorer、Microsoft Edge、Mozilla Firefox 和 Google Chrome,则 Workspace for web 的域直通功能已启用。仅当客户端成功检测到时,才启用域直通。

注意:

如果用户首选 HTML5 客户端或管理员强制使用 HTML5 客户端,则不启用域直通身份验证方法。

在浏览器中启动 StoreFront URL 时,将显示“Detect Receiver”(检测 Receiver)提示。

如果设备受管理,请配置组策略以禁用此提示,而不是禁用客户端检测。有关详细信息,请参阅:

注意:

Citrix Workspace app 使用的协议处理程序是 receiver:。将其配置为允许的 URL 之一。

用户还可以选择客户端检测提示中 StoreFront URL 的以下示例提示中所示的复选框。选择此复选框还可以避免后续启动时出现提示。

允许 Citrix Workspace 启动器

以下步骤说明了如何将 Citrix Gateway 设置为 IdP。

在本地 Citrix Gateway 上创建 OAuth IdP 策略

创建 OAuth IdP 身份验证策略涉及以下任务:

  1. 创建 OAuth IdP 配置文件。
  2. 添加 OAuth IdP 策略。
  3. 将 OAuth IdP 策略绑定到虚拟服务器。
  4. 全局绑定证书。

创建 OAuth IdP 配置文件

    -  1.  要使用 CLI 创建 OAuth IdP 配置文件,请在命令提示符下键入以下内容:

```
    -  add authentication OAuthIdPProfile <name> [-clientID <string>][-clientSecret ][-redirectURL <URL>][-issuer <string>][-audience <string>][-skewTime <mins>] [-defaultAuthenticationGroup <string>]

    -  add authentication OAuthIdPPolicy <name> -rule <expression> [-action <string> [-undefAction <string>] [-comment <string>][-logAction <string>]

add authentication ldapAction <name> -serverIP <IP> -ldapBase "dc=aaa,dc=local"

ldapBindDn <administrator@aaa.local> -ldapBindDnPassword <password> -ldapLoginName sAMAccountName

add authentication policy <name> -rule <expression> -action <string>

    -  bind authentication vserver auth_vs -policy <ldap_policy_name> -priority <integer> -gotoPriorityExpression NEXT

    -  bind authentication vserver auth_vs -policy <OAuthIdPPolicyName> -priority <integer> -gotoPriorityExpression END

    -  bind vpn global –certkey <>

<!--NeedCopy--> ```
  1. 要使用 GUI 创建 OAuth IdP 配置文件:

    1. 登录到本地 Citrix Gateway 管理门户,然后导航到“Security”(安全)>“AAA – Application Traffic”(AAA – 应用程序流量)>“Policies”(策略)>“Authentication”(身份验证)>“Advanced Policies”(高级策略)>“OAuth IDP”。

      OAuth IdP

        1. 在“OAuth IdP”页面中,单击“Profiles”(配置文件)选项卡,然后单击“Add”(添加)。
        1. 配置 OAuth IdP 配置文件。

注意:

  • 从“Citrix Cloud”>“Identity and Access Management”(身份和访问管理)>“Authentication”(身份验证)选项卡复制并粘贴 Client ID、Secret 和 Redirect URL 值,以建立与 Citrix Cloud 的连接。
  • 在“Issuer Name”(颁发者名称)字段中正确输入 Gateway URL。例如,https://GatewayFQDN.com
  • 同时复制并粘贴 Client ID 到“Audience”(受众)字段中。
  • Send Password(发送密码):启用此选项以支持单点登录。此选项默认处于禁用状态。
1.  在“**Create Authentication OAuth IdP Profile**”(创建身份验证 OAuth IdP 配置文件)屏幕上,为以下参数设置值,然后单击“**Create**”(创建)。

    -  **Name**(名称)– 身份验证配置文件的名称。必须以字母、数字或下划线字符 (_) 开头。名称只能包含字母、数字、连字符 (-)、句点 (.)、井号 (#)、空格 ( )、at 符号 (@)、等号 (=)、冒号 (:) 和下划线字符。配置文件创建后,无法更改其名称。
    -  **Client ID**(客户端 ID)– 标识 SP 的唯一字符串。授权服务器使用此 ID 推断客户端配置。最大长度:127。
    -  **Client Secret**(客户端密钥)– 由用户和授权服务器建立的密钥字符串。最大长度:239。
    -  **Redirect URL**(重定向 URL)– SP 上必须发布代码/令牌的终结点。
    -  **Issuer Name**(颁发者名称)– 必须接受其令牌的服务器的身份。最大长度:127。示例:`https://GatewayFQDN.com`。
    -  **Audience**(受众)– IdP 发送的令牌的目标接收者。接收者验证此令牌。
    -  **Skew Time**(偏差时间)– 此选项指定 Citrix ADC 允许传入令牌的时钟偏差(以分钟为单位)。例如,如果 skewTime 为 10,则令牌从(当前时间 - 10)分钟到(当前时间 + 10)分钟有效,即总共 20 分钟。默认值:5。
    -  **Default Authentication Group**(默认身份验证组)– 当 IdP 选择此配置文件时,添加到会话内部组列表的组,可在 nFactor 流程中使用。它可以在表达式 (AAA.USER.IS_MEMBER_OF(“xxx”)) 中用于身份验证策略,以识别与依赖方相关的 nFactor 流程。最大长度:63。

此配置文件的一个组将添加到会话中,以简化策略评估并帮助自定义策略。此组是身份验证成功时选择的默认组,此外还有提取的组。最大长度:63。

  ![创建 OAuth IdP 配置文件](/en-us/citrix-workspace-app-for-windows/media/create-oth-idp-profil.png)

添加 OAuth IdP 策略

  1. 在“OAuth IdP”页面中,单击“Policies”(策略),然后单击“Add”(添加)。
  2. 在“Create Authentication OAuth IdP Policy”(创建身份验证 OAuth IdP 策略)屏幕上,为以下参数设置值,然后单击“Create”(创建)。

    • 名称 – 身份验证策略的名称。
    • 操作 – 之前创建的配置文件的名称。
    • 日志操作 – 当请求与此策略匹配时要使用的消息日志操作的名称。非必填字段。
    • 未定义结果操作 – 如果策略评估结果未定义 (UNDEF),则执行的操作。非必填字段。
    • 表达式 – 策略用于响应特定请求的默认语法表达式。例如,true。
    • 注释 – 有关策略的任何注释。

    创建 OAuth IdP 策略

    注意:

    当 sendPassword 设置为 ON(默认为 OFF)时,用户凭据将加密并通过安全通道传递到 Citrix Cloud。通过安全通道传递用户凭据可让您在启动时启用对 Citrix Virtual Apps and Desktops™ 的 SSO。

将 OAuthIDP 策略和 LDAP 策略绑定到虚拟身份验证服务器

现在,您需要将 OAuth IdP 策略绑定到本地 Citrix Gateway 上的虚拟身份验证服务器。

  1. 登录到本地 Citrix Gateway 管理门户,然后导航到 Configuration > Security > AAA-Application Traffic > Policies > Authentication > Advanced Policies > Actions > LDAP
  2. LDAP Actions 屏幕上,单击 Add
      1. 在 Create Authentication LDAP Server 屏幕上,设置以下参数的值,然后单击 Create
      • 名称 – LDAP 操作的名称。
      • 服务器名称/服务器 IP – 提供 LDAP 服务器的 FQDN 或 IP。
      • Security TypePortServer TypeTime-Out 选择适当的值。
      • 确保选中 Authentication
    • 基本 DN – 开始 LDAP 搜索的基。例如,dc=aaadc=local
    • 管理员绑定 DN:绑定到 LDAP 服务器的用户名。例如,admin@aaa.local
    • 管理员密码/确认密码:绑定 LDAP 的密码。
    • 单击 Test Connection 以测试您的设置。
    • 服务器登录名属性:选择 “sAMAccountName”。
    • 其他字段不是必填字段,因此可以根据需要进行配置。
  3. 导航到 Configuration > Security > AAA-Application Traffic > Policies > Authentication > Advanced Policies > Policy
  4. Authentication Policies 屏幕上,单击 Add
  5. Create Authentication Policy 页面上,设置以下参数的值,然后单击 Create

    • 名称 – LDAP 身份验证策略的名称。
    • 操作类型 – 选择 LDAP。
    • 操作 – 选择 LDAP 操作。
    • 表达式 – 策略用于响应特定请求的默认语法表达式。例如,true。

将证书全局绑定到 VPN

    -  将证书全局绑定到 VPN 需要通过 CLI 访问本地 Citrix Gateway。使用 Putty(或类似工具)通过 SSH 登录到本地 Citrix Gateway。

    -  1.  启动命令行实用程序,例如 Putty。
  1. 使用 SSH 登录到本地 Citrix Gateway。
  2. 键入以下命令: show vpn global

    注意:

    不得绑定任何证书。

    显示 VPN 全局

  3. 要列出本地 Citrix Gateway 上的证书,请键入以下命令:
  • show ssl certkey
    1. 选择相应的证书,然后键入以下命令以将证书全局绑定到 VPN:
  • bind vpn global -certkey cert_key_name

  • 其中 cert_key_name 是证书的名称。
    1. 键入以下命令以检查证书是否已全局绑定到 VPN:

    show vpn global

    显示 VPN 全局

在 Citrix Gateway 中将域直通配置为身份验证方法

完成将 Citrix Gateway 设置为 IdP 后,执行以下步骤以在 Citrix Gateway 中将域直通配置为身份验证方法。

当域直通设置为身份验证方法时,客户端使用 Kerberos 票证进行身份验证,而不是凭据。 Citrix Gateway 同时支持模拟 (Impersonation) 和 Kerberos 约束委派 (KCD)。但是,本文介绍 KCD 身份验证。有关详细信息,请参阅知识中心文章 CTX236593

配置域直通包括以下步骤:

  1. Kerberos 约束委派配置
  2. 客户端配置

Kerberos 约束委派配置

  1. 在 Active Directory 中创建 KCD 用户

    Kerberos 采用票证授予系统对用户进行资源身份验证,涉及客户端、服务器和密钥分发中心 (KDC)。

    要使 Kerberos 正常工作,客户端需要从 KDC 请求票证。客户端必须首先使用其用户名、密码和域向 KDC 进行身份验证,然后才能请求票证,这称为 AS 请求。

    Kerberos 属性

  2. 将新用户与服务主体名称 (SPN) 相关联。

    客户端使用 Gateway 的 SPN 进行身份验证。

    • 服务主体名称 (SPN):服务主体名称 (SPN) 是服务实例的唯一标识符。Kerberos 身份验证使用 SPN 将服务实例与服务登录帐户相关联。此功能允许客户端应用程序请求帐户的服务身份验证,即使客户端没有帐户名称。

    SetSPN 是用于管理 Windows 设备上 SPN 的应用程序。使用 SetSPN,您可以查看、编辑和删除 SPN 注册。

    1. 在 Active Directory 服务器中,打开命令提示符。
    2. 在命令提示符中,输入以下命令:

      setspn –A http/<LB fqdn> <domain\Kerberos user>

    3. 要确认 Kerberos 用户的 SPN,请运行以下命令:

      setspn –l <Kerberos user>

      运行 setspn 命令后,将显示“委派”选项卡。

    4. 选择仅信任此用户用于指定服务的委派选项和使用任何身份验证协议选项。添加 Web 服务器并选择 HTTP 服务。

      KCD user properties

  3. 创建 DNS 记录,以便客户端查找网关的 SPN:

    在 Active Directory 中添加 TXT DNS 记录。

    注意:

    名称必须以 _Kerberos 开头,数据必须是域名。FQDN 必须显示 Kerberos.

    Kerberos properties

    已加入域的 Windows 客户端使用 _kerberos.fqdn 请求票证。例如,如果客户端已加入 citrite.net,则操作系统可以获取 *.citrite.net 域中任何网站的票证。但是,如果网关域是外部域(例如 gateway.citrix.com),则客户端操作系统无法获取 Kerberos 票证。

    因此,必须创建 DNS TXT 记录,以帮助客户端查找 _kerberos.gateway.citrix.com 并获取用于身份验证的 Kerberos 票证。

  4. 将 Kerberos 配置为身份验证因素。

    1. 为 NetScaler® 用户创建 KCD 帐户。在此处,选择手动执行此操作,但可以创建密钥表文件。

      注意:

      如果正在使用备用域(内部域和外部域),则必须将服务 SPN 设置为 HTTP/PublicFQDN.com@InternalDomain.ext

      • 领域 - Kerberos 领域。通常是内部域后缀。
      • 用户领域 - 这是用户的内部域后缀。
      • 企业领域 - 仅在某些 KDC 部署中需要提供此项,在这些部署中,KDC 预期使用企业用户名而不是主体名称。
      • 委派用户 - 这是在之前的步骤中在 AD 中创建的用于 KCD 的 NetScaler 用户帐户。确保密码正确。

      Configure KCD account

    2. 确保会话配置文件正在使用正确的 KCD 帐户。将会话策略绑定到身份验证、授权和审核虚拟服务器。

      Configure Session Profile

    3. 将身份验证策略绑定到身份验证、授权和审核虚拟服务器。这些策略使用不从客户端获取密码的身份验证、授权和审核方法,因此需要使用 KCD。但是,它们仍必须以 UPN 格式获取用户名和域信息。

      注意:

      可以使用 IP 地址或 EPA 扫描来区分已加入域和未加入域的设备,并使用 Kerberos 或常规 LDAP 作为身份验证因素。

配置客户端

要允许成功单点登录到 VDA,请执行以下操作。

先决条件:

  • 已加入域的计算机
  • Citrix Workspace 2112.1 或更高版本,并启用 SSO 设置
  • 信任必要的 URL,用于检查连接是否安全
  • 验证客户端和 AD 中的 Kerberos。客户端操作系统必须与 AD 具有连接才能获取 Kerberos 票证。

以下是一些要在浏览器中信任的 URL:

  • 网关 URL 或 FQDN
  • AD FQDN
  • 用于从基于浏览器的启动进行 SSO 的 Workspace URL。
  1. 如果正在使用 Internet Explorer、Microsoft Edge 或 Google Chrome,请执行以下操作:

    1. 启动浏览器。
    2. 在客户端上打开本地组策略编辑器。

    Show contents

    1. 转到计算机配置 > Windows 组件 > Internet Explorer > Internet 控制面板 > 安全页。
    2. 打开“站点到区域分配”列表,并添加所有列出的 URL,值为一 (1)。
    3. (可选)运行 Gpupdate 以应用策略。
  2. 如果正在使用 Mozilla Firefox 浏览器,请执行以下操作:

    1. 打开浏览器。
    2. 在搜索栏中键入 about:config
    3. 接受风险并继续。
    4. 在搜索字段中,键入 negotiate
    5. 从填充的数据列表中,验证 network.negotiate-auth.trusted-uris 是否设置为域值。

      Verify

    这就完成了客户端的配置。

  3. 使用 Citrix Workspace 应用程序或浏览器登录到 Workspace。

这不应在已加入域的设备上提示输入用户名或密码。

Kerberos 故障排除

注意:

必须是域管理员才能运行此验证步骤。

在命令提示符或 Windows PowerShell 中,运行以下命令以验证 SPN 用户的 Kerberos 票证验证:

KLIST get host/FQDN of AD

使用本地 Citrix Gateway 作为身份提供程序将域直通到 Citrix Workspace