使用本地 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 提示。

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

注意:

Citrix 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 服务器操作的名称。
    • ServerName/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 身份验证。有关详细信息,请参阅知识中心文章 CTX236593

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

  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>

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

      setspn –l <Kerberos user>

      运行 setspn 命令后,会出现“委派”选项卡。

    4. 选择 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、Microsoft Edge 或 Google Chrome,请执行以下操作:

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

    显示内容

    1. 转到计算机配置 > Windows 组件 > Internet Explorer > 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. 使用 Citrix Workspace 应用程序或浏览器登录到 Workspace。

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

Kerberos 故障排除

注意:

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

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

KLIST get host/FQDN of AD

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