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

重要:

本文有助于配置域直通身份验证。如果您已将本地网关设置为 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 Connector - 至少需要两台服务器来安装 Citrix Cloud Connector 软件。
  • Active Directory,并确保域已注册。
  • Citrix Gateway 要求
    • 由于已弃用经典策略,请在本地网关上使用高级策略。
    • 配置网关以对 Citrix Workspace 的订阅者进行身份验证时,网关将充当 OpenID Connect 提供商。Citrix Cloud 与网关之间的消息符合 OIDC 协议,该协议涉及对令牌进行数字签名。因此,您必须配置证书以对这些令牌进行签名。
    • 时钟同步 - 必须将 Citrix Gateway 同步到 NTP 时间。

有关详细信息,请参阅 Citrix Cloud 文档中的 Prerequisites(必备条件)。

在创建 OAuth IdP 策略之前,您需要先设置 Citrix Workspace 或 Citrix Cloud,以便在 IdP 中使用网关作为身份验证选项。有关如何设置的详细信息,请参阅 Connect an on-premises Citrix Gateway to Citrix Cloud(将本地 Citrix 网关连接到 Citrix Cloud)。完成设置后,将生成创建 OAuth IdP 策略所需的客户端 ID、密钥和重定向 URL。

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

注意:

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

在浏览器中启动 StoreFront URL 时,将显示检测 Receiver 提示。

如果设备处于托管状态,请将组策略配置为禁用此提示,而非禁用客户端检测。有关详细信息,请参阅:

注意:

Workspace 应用程序使用的协议处理程序为 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-->
    
  2. 要使用 GUI 创建 OAuth IdP 配置文件,请执行以下操作:

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

      OAuth IdP

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

      注意:

      • Citrix Cloud > Identity and Access Management(身份识别和访问管理) > Authentication(身份验证)选项卡中复制并粘贴客户端 ID、密钥和重定向 URL 值,以建立与 Citrix Cloud 的连接。
      • Issuer Name(发行者名称)示例中正确输入网关 URL。例如,https://GatewayFQDN.com
      • 还可以在 Audience(受众)字段中复制并粘贴客户端 ID。
      • Send Password(发送密码):启用此选项以获得单点登录支持。默认情况下,此选项处于禁用状态。
    4. Create Authentication OAuth IdP Profile(创建身份验证 OAuth IdP 配置文件)页面上,设置以下参数的值,然后单击 Create(创建)。

      • Name(名称)- 身份验证配置文件的名称。必须以字母、数字或下划线字符 (_) 开头。名称只能包含字母、数字以及连字符 (-)、句点 (.)、井号 (#)、空格 ()、at 符号 (@)、等号 (=)、冒号 (:) 和下划线字符。创建配置文件后,您无法更改名称。
      • Client ID(客户端 ID)- 标识 SP 的唯一字符串。授权服务器使用此 ID 推断客户端配置。最大长度:127。
      • 客户端密钥 - 由用户和授权服务器建立的密钥字符串。最大长度:239。
      • Redirect URL(重定向 URL)- 必须向其发布代码/令牌的 SP 上的端点。
      • 颁发者名称 - 要接受其令牌的服务器的标识。最大长度: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 配置文件

添加 OAuth IdP 策略

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

    • Name(名称)- 身份验证策略的名称。
    • Action(操作)- 之前创建的配置文件的名称。
    • Log Action(日志操作)- 请求与此策略匹配时要使用的消息日志操作的名称。非强制性提交。
    • Undefined-Result Action(未定义的结果操作)- 策略评估结果未定义 (UNDEF) 时应执行的操作。非必填字段。
    • Expression(表达式)- 策略用于响应特定请求的默认语法表达式。例如,true。
    • Comments(评论)- 对策略的任何评论。

    创建 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(AAA-应用程序流量)> Policies(流量)> Authentication(身份验证)> Advanced Policies(高级策略)> Actions(操作)> LDAP
  2. LDAP Action(LDAP 操作)屏幕上,单击 Add(添加)。
  3. 在“Create Authentication LDAP Server”(创建身份验证 LDAP 服务器)屏幕上,设置以下参数的值,然后单击 Create(创建)。

    • Name(名称)- LDAP 服务器操作的名称。
    • ServernName/serverIP(服务器名称/服务器 IP)- 提供 LDAP 服务器的 FQDN 或 IP。
    • Security Type(安全类型)、Port(端口)、Server Type(服务器类型)、Time-Out(超时)选择适当的值。
    • 确保已选中 Authentication(身份验证)。
    • Base DN(基础 DN)- 开始 LDAP 搜索的基础。例如,dc=aaadc=local
    • Administrator Bind DN(管理员绑定 DN):绑定到 LDAP 服务器的用户名。例如,admin@aaa.local
    • Administrator Password/Confirm Password(管理员密码/确认密码):用于绑定 LDAP 的密码。
    • 单击 Test Connection(测试连接)测试您的设置。
    • Server Logon Name Attribute(服务器登录名属性):选择“sAMAccountName”。
    • 其他字段不是必填字段,因此可以根据需要进行配置。
  4. 导航到 Configuration(配置)> Security(安全)> AAA - Application Traffic(AAA - 应用程序流量)> Policies(策略)> Authentication(身份验证)> Advanced Policies (高级策略)> Policy(策略)。
  5. Authentication Policies(身份验证策略)屏幕上,单击 Add(添加)。
  6. Create Authentication Policy(创建身份验证策略)页面上,设置以下参数的值,然后单击 Create(创建)。

    • Name(名称)- LDAP 身份验证策略的名称。
    • Action Type(操作类型)- 选择“LDAP”。
    • Action(操作)- 选择 LDAP 操作。
    • Expression(表达式)- 策略用于响应特定请求的默认语法表达式。例如,true。

将证书全局绑定到 VPN

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

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

    注意:

    不得绑定任何证书。

    Show VPN global

  4. 要列出本地 Citrix Gateway 上的证书,请键入以下命令: show ssl certkey
  5. 选择相应的证书,然后键入以下命令以将证书全局绑定到 VPN:

    bind vpn global -certkey cert_key_name

    其中 cert_key_name 是证书的名称。

  6. 键入以下命令以检查证书是否已全局绑定到 VPN:

    show vpn global

    Show VPN global

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

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

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

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

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

Kerberos 约束委派配置

  1. 在 Active Directory 中创建 KCD 用户

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

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

    Kerberos 属性

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

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

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

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

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

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

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

    setspn –l <Kerberos user> The Delegation tab appears after running the setspn command.

    1. 选择 Trust this user for delegation to specified services only(仅信任此用户来委派给指定服务)选项和 Use any authentication protocol(使用任何身份验证协议)选项。添加 Web 服务器并选择 HTTP 服务。

      KCD 用户属性

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

    在 Active Directory 中添加 TXT DNS 记录。

    注意:

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

    Kerberos 属性

    窗口的已加入域的客户端使用 _kerberos.fqdn 请求票证。例如,如果客户端加入了 citrite.net,操作系统可以获取任何带 *.citrite.net 的 Web 站点的票证。但是,如果网关域像 gateway.citrix.com 一样位于外部域,客户端操作系统将无法获取 Kerberos 票证。

    因此,必须创建一个 DNS TXT 记录,该记录将帮助客户端查找 _kerberos.gateway.com 并获取 Kerberos 票证以进行身份验证。

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

    1. 为 NetScaler 用户创建一个 KCD 帐户。在这里,我们选择手动执行此操作,但您可以创建 keytab 文件。

      注意:

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

      • 领域 - Kerberos 领域。通常是您的内部域名后缀。
      • User Realm(用户领域)- 这是用户的内部域后缀。
      • Enterprise Realm(企业领域)- 只有在 KDC 需要企业用户名而非主体名称的某些 KDC 部署中才需要提供此选项。
      • Delegated User(委派用户)- 这是您在前面的步骤中在 AD 中创建的 KCD 的 NetScaler 用户帐户。确保密码正确。

      配置 KCD 帐户

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

      Configure Session Profile(配置会话配置文件)

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

      注意:

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

配置客户端

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

必备条件:

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

下面是在浏览器中值得信任的一些 URL:

  • 网关 URL 或 FQDN
  • AD FQDN
  • 来自基于浏览器的启动的 SSO 的 Workspace URL。
  1. 如果你使用的是 Internet Explorer、微软 Edge 或谷歌浏览器,请执行以下操作:

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

    显示内容

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

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

      验证

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

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

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

Kerberos 故障排除

注意:

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

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

KLIST get host/FQDN of AD

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