使用本地 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 提示。
如果设备处于托管状态,请将组策略配置为禁用此提示,而非禁用客户端检测。有关详细信息,请参阅:
- Microsoft 文档中的 URLAllowlist。
- Google Chrome 文档中的 URLAllowlist。
注意:
Citrix Workspace 应用程序使用的协议处理程序为 receiver:。请将其配置为允许使用的其中一个 URL。
用户还可以选中该复选框,如以下示例提示所示,以便在客户端检测提示中输入 StoreFront URL。选中此复选框还可以避免提示后续启动。
以下步骤说明了如何将 Citrix Gateway 设置为 IdP。
在本地 Citrix Gateway 上创建 OAuth IdP 策略
创建 OAuth IdP 身份验证策略涉及以下任务:
- 创建 OAuth IdP 配置文件。
- 添加 OAuth IdP 策略。
- 将 OAuth IdP 策略绑定到虚拟服务器。
- 全局绑定证书。
创建 OAuth IdP 配置文件
-
要使用 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-->
-
要使用 GUI 创建 OAuth IdP 配置文件,请执行以下操作:
-
登录到您的本地 Citrix Gateway 管理门户,然后导航到 Security(安全)> AAA – Application Traffic(AAA — 应用程序流量)> Policies(策略)> Authentication(身份验证)> Advanced Policies(高级策略)> OAuth IdP。
- 在 OAuth IdP 页面中,单击 Profiles(配置文件)选项卡,然后单击 Add(添加)。
-
配置 OAuth IdP 配置文件。
注意:
- 从 Citrix Cloud > Identity and Access Management(身份识别和访问管理) > Authentication(身份验证)选项卡中复制并粘贴客户端 ID、密钥和重定向 URL 值,以建立与 Citrix Cloud 的连接。
- 在 Issuer Name(发行者名称)示例中正确输入网关 URL。例如,
https://GatewayFQDN.com
。 - 还可以在 Audience(受众)字段中复制并粘贴客户端 ID。
- Send Password(发送密码):启用此选项以获得单点登录支持。默认情况下,此选项处于禁用状态。
-
在 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”页面中,单击 Policies(策略),然后单击 Add(添加)。
-
在 Create Authentication OAuth IdP Policy(创建身份验证 OAuth IdP 策略)页面上,设置以下参数的值,然后单击 Create(创建)。
- Name(名称)- 身份验证策略的名称。
- Action(操作)- 之前创建的配置文件的名称。
- Log Action(日志操作)- 请求与此策略匹配时要使用的消息日志操作的名称。非强制性提交。
- Undefined-Result Action(未定义的结果操作)- 策略评估结果未定义 (UNDEF) 时应执行的操作。非必填字段。
- Expression(表达式)- 策略用于响应特定请求的默认语法表达式。例如,true。
- Comments(评论)- 对策略的任何评论。
注意:
当 sendPassword 设置为“ON”(默认设置为“OFF”)时,用户凭据将加密并通过安全通道传递到 Citrix Cloud。通过安全通道传递用户凭据允许您在启动时为 Citrix Virtual Apps and Desktops 启用 SSO。
将 OAuthIDP 策略和 LDAP 策略绑定到虚拟身份验证服务器
现在,您需要将 OAuth IdP 策略绑定到本地 Citrix Gateway 上的虚拟身份验证服务器。
- 登录本地 Citrix Gateway 管理门户,然后导航到 Configuration(配置)> Security(安全)> AAA-Application Traffic(AAA-应用程序流量)> Policies(流量)> Authentication(身份验证)> Advanced Policies(高级策略)> Actions(操作)> LDAP。
- 在 LDAP Action(LDAP 操作)屏幕上,单击 Add(添加)。
-
在“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=aaa
、dc=local
。 -
Administrator Bind DN(管理员绑定 DN):绑定到 LDAP 服务器的用户名。例如,
admin@aaa.local
。 - Administrator Password/Confirm Password(管理员密码/确认密码):用于绑定 LDAP 的密码。
- 单击 Test Connection(测试连接)测试您的设置。
- Server Logon Name Attribute(服务器登录名属性):选择“sAMAccountName”。
- 其他字段不是必填字段,因此可以根据需要进行配置。
- 导航到 Configuration(配置)> Security(安全)> AAA - Application Traffic(AAA - 应用程序流量)> Policies(策略)> Authentication(身份验证)> Advanced Policies (高级策略)> Policy(策略)。
- 在 Authentication Policies(身份验证策略)屏幕上,单击 Add(添加)。
-
在 Create Authentication Policy(创建身份验证策略)页面上,设置以下参数的值,然后单击 Create(创建)。
- Name(名称)- LDAP 身份验证策略的名称。
- Action Type(操作类型)- 选择“LDAP”。
- Action(操作)- 选择 LDAP 操作。
- Expression(表达式)- 策略用于响应特定请求的默认语法表达式。例如,true**。
将证书全局绑定到 VPN
将证书全局绑定到 VPN 需要对本地 Citrix Gateway 进行 CLI 访问权限。使用 Putty(或类似)通过 SSH 登录本地 Citrix Gateway。
- 启动命令行实用程序,例如 Putty。
- 使用 SSH 登录本地 Citrix Gateway。
-
键入以下命令:
show vpn global
注意:
不得绑定任何证书。
- 要列出本地 Citrix Gateway 上的证书,请键入以下命令:
show ssl certkey
-
选择相应的证书,然后键入以下命令以将证书全局绑定到 VPN:
bind vpn global -certkey cert_key_name
其中 cert_key_name 是证书的名称。
-
键入以下命令以检查证书是否已全局绑定到 VPN:
show vpn global
在 Citrix Gateway 中将域直通配置为身份验证方法
完成将 Citrix Gateway 设置为 IdP 后,请执行以下步骤以在 Citrix Gateway 中将域直通配置为身份验证方法。
将域直通设置为身份验证方法时,客户端将使用 Kerberos 票证而非凭据进行身份验证。 Citrix Gateway 同时支持模拟和 Kerberos 约束委派 (KCD)。但是,本文介绍了 KCD 身份验证。有关详细信息,请参阅知识中心文章 CTX236593。
配置域直通包括以下步骤:
- Kerberos 约束委派配置
- 客户端配置
Kerberos 约束委派配置
-
在 Active Directory 中创建 KCD 用户
Kerberos 在票证授予系统中运行,以针对资源验证用户的身份,它涉及客户端、服务器和密钥分发中心 (KDC)。
为了让 Kerberos 正常运行,客户端需要向 KDC 请求票证。客户端必须首先使用其用户名、密码和域向 KDC 进行身份验证,然后才能请求名为 AS 请求的票证。
-
将新用户与服务主体名称 (SPN) 关联。
客户端使用网关的 SPN 进行身份验证。
- 服务主体名称 (SPN):服务主体名称 (SPN) 是服务实例的唯一标识符。Kerberos 身份验证使用 SPN 将服务实例与服务登录帐户关联。此功能允许客户端应用程序请求帐户的服务身份验证,即使客户端没有帐户名亦如此。
SetSPN 是用于在 Windows 设备上管理 SPN 的应用程序。使用 SetSPN,可以查看、编辑和删除 SPN 注册。
- 在 Active Directory 服务器中,打开命令提示符。
-
在命令提示窗口中,输入以下命令:
setspn –A http/<LB fqdn> <domain\Kerberos user>
-
要确认 Kerberos 用户的 SPN,请运行以下命令:
setspn –l <Kerberos user>
运行
setspn
命令后,会出现“委派”选项卡。 -
选择 Trust this user for delegation to specified services only(仅信任此用户来委派给指定服务)选项和 Use any authentication protocol(使用任何身份验证协议)选项。添加 Web 服务器并选择 HTTP 服务。
-
为客户端创建 DNS 记录以查找网关的 SPN:
在 Active Directory 中添加 TXT DNS 记录。
注意:
名称必须以 _Kerberos 开头,数据必须是域名。FQDN 必须显示 Kerberos。
。 窗口的已加入域的客户端使用 _kerberos.fqdn 请求票证。例如,如果客户端加入了 citrite.net,操作系统可以获取任何带 *.citrite.net 的 Web 站点的票证。但是,如果网关域像 gateway.citrix.com 一样位于外部域,客户端操作系统将无法获取 Kerberos 票证。
因此,必须创建一个 DNS TXT 记录,该记录将帮助客户端查找 _kerberos.gateway.com 并获取 Kerberos 票证以进行身份验证。
-
将 Kerberos 配置为身份验证因素。
-
为 NetScaler 用户创建一个 KCD 帐户。在这里,我们选择手动执行此操作,但您可以创建 keytab 文件。
注意:
如果您使用备用域(内部域和外部域),则必须将服务 SPN 设置为
HTTP/PublicFQDN.com@InternalDomain.ext
。- 领域 - Kerberos 领域。通常是您的内部域名后缀。
- User Realm(用户领域)- 这是用户的内部域后缀。
- Enterprise Realm(企业领域)- 只有在 KDC 需要企业用户名而非主体名称的某些 KDC 部署中才需要提供此选项。
- Delegated User(委派用户)- 这是您在前面的步骤中在 AD 中创建的 KCD 的 NetScaler 用户帐户。确保密码正确。
-
确保会话配置文件使用的是正确的 KCD 帐户。将会话策略绑定到身份验证、授权和审核虚拟服务器。
(配置会话配置文件)
-
将身份验证策略绑定到身份验证、授权和审核虚拟服务器。这些策略使用不从客户端获取密码的身份验证、授权和审核方法,因此需要使用 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。
-
如果您使用的是 Internet Explorer、Microsoft Edge 或 Google Chrome,请执行以下操作:
- 启动浏览器。
- 在客户端上打开本地组策略编辑器。
- 转到计算机配置 > Windows 组件 > Internet Explorer > Internet 控制面板 > 安全 页面。
- 打开“Site to zone Assignment”(站点到区域分配)列表,然后添加列出的所有 URL,值为一 (1)。
- (可选)运行
Gpupdate
以应用策略。
-
如果您使用的是 Mozilla Firefox 浏览器,请执行以下操作:
- 打开浏览器。
- 在搜索栏中键入
about:config
。 - 接受风险并继续。
- 在搜索字段中,键入 negotiate。
-
从填充的数据列表中,验证 network.negotiate-auth.trusted-uris 是否设置为域值。
这样就完成了客户端的配置。
-
使用 Citrix Workspace 应用程序或浏览器登录到 Workspace。
这不得提示在加入了域的设备上输入用户名或密码。
Kerberos 故障排除
注意:
您必须是域管理员才能运行此验证步骤。
在命令提示符或 Windows PowerShell 中,运行以下命令以验证 SPN 用户的 Kerberos 票证验证:
KLIST get host/FQDN of AD