ADC

使用本地 NetScaler Gateway 作为 Citrix Cloud 的身份提供程序

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

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

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

支持 NetScaler Gateway 身份验证与以下产品版本结合使用:

  • NetScaler Gateway 13.0 41.20 Advanced Edition 或更高版本
  • NetScaler Gateway 12.1 54.13 Advanced Edition 或更高版本

必备条件

  • Cloud Connector - 至少需要两台服务器来安装 Citrix Cloud Connector 软件。

  • Active Directory - 执行必要的检查。

  • NetScaler Gateway 要求

    • 由于已弃用经典策略,请在本地网关上使用高级策略。

    • 配置网关以对 Citrix Workspace 的订阅者进行身份验证时,网关将充当 OpenID Connect 提供商。Citrix Cloud 与网关之间的消息符合 OIDC 协议,该协议涉及对令牌进行数字签名。因此,您必须配置证书以对这些令牌进行签名。

    • 时钟同步 - 必须将网关同步到 NTP 时间。

有关详细信息,请参阅必备条件

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

重要提示:

您必须已在 Citrix Cloud > 身份和访问管理 > 身份验证选项卡中生成了客户端 ID、加密和 重定向 URL。 有关详细信息,请参阅将本地 NetScaler Gateway 连接到 Citrix Cloud

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

  1. 创建 OAuth IdP 配置文件。

  2. 添加 OAuth IdP 策略。

  3. 将 OAuth IdP 策略绑定到身份验证虚拟服务器。

  4. 全局绑定证书。

使用 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 -certkeyName <>
<!--NeedCopy-->

使用 GUI 创建 OAuth IdP 配置文件

  1. 导航到 安全 > AAA — 应用程序流量 > 策略 > 身份验证 > 高级策略 > OAuth IDP

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

  3. 配置 OAuth IdP 配置文件。

    注意:

    • Citrix Cloud > 身份和访问管理 > 身份验证选项卡中复制并粘贴客户端 ID、密钥和 重定向 URL 值,以建立与 Citrix Cloud 的连接。

    • Issuer Name(发行者名称)示例中正确输入网关 URL:https://GatewayFQDN.com

    • 还可以在 Audience(受众)字段中复制并粘贴客户端 ID。

    • Send Password(发送密码):启用此选项以获得单点登录支持。默认情况下,此选项处于禁用状态。

  4. Create Authentication OAuth IDP Profile(创建身份验证 OAuth IDP 配置文件)页面上,设置以下参数的值,然后单击 Create(创建)。

    • 名称:身份验证配置文件的名称。必须以字母、数字或下划线字符 (_) 开头。名称只能包含字母、数字以及连字符 (-)、句点 (.) 磅 (#)、空格 ()、at (@)、等于 (=)、冒号 (:) 和下划线字符。创建配置文件后无法更改。
    • 客户端 ID:标识 SP 的唯一字符串。授权服务器使用此 ID 推断客户端配置。最大长度:127。
    • 客户端密钥:用户和授权服务器建立的密钥字符串。最大长度:239。
    • 重定向 URL:必须向 SP 上发布代码/令牌的端点。
    • 发行者名称:要接受其令牌的服务器的身份。最大长度:127。示例:https://GatewayFQDN.com
    • 受众:IdP 发送的代币的目标接收者。此令牌由收件人检查。
    • 偏移时间:此选项指定 NetScaler 允许对传入令牌使用的时钟偏差(以分钟为单位)。例如,如果 skewTime 为 10,那么令牌的有效期为(当前时间 - 10)分钟至(当前时间 + 10)分钟,也就是 20 分钟。默认值:5。
    • 默认身份验证组:当 IdP 选择可以在 nFactor 流中使用的配置文件时,该组已添加到会话内部组列表中。它可以在表达式 (AAA.USER.IS_MEMBER_OF(“xxx”)) 中用于身份验证策略,以识别与依赖方相关的 nFactor 流。最大长度:63

    组将添加到此配置文件的会话中,以简化策略评估过程并帮助自定义策略。除了提取的组外,此组是身份验证成功时选择的默认组。

    • 信赖方元数据 URL:NetScaler IdP 可以在该端点上获取有关正在配置的信赖方的详细信息。元数据响应必须包含用于 RP 公钥的 jwks_uri 的端点。最大长度为 255。
    • 刷新间隔:信赖方元数据的刷新间隔。默认间隔为 50。
    • 加密令牌:选择此选项时, NetScaler 发送的令牌将被加密。
    • 签名服务: 用于对数据进行签名的云服务的名称。这仅适用于将签名卸载到云端的情况。
    • 属性:要插入到 ID 令牌中的属性的名称-值对。最大长度为 1047 个字符。
    • 发送密码:选择此选项可发送 ID 令牌中的加密密码。
  5. 单击 Policies(策略),然后单击 Add(添加)。

  6. Create Authentication OAuth IDP Policy(创建身份验证 OAuth IDP 策略)页面上,设置以下参数的值,然后单击 Create(创建)。

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

注意:

sendPassword 设置为开(默认情况下关闭)时,用户凭据将被加密并通过安全渠道传递给 Citrix Cloud。通过安全通道传递用户凭据允许您在启动时为 Citrix Virtual Apps and Desktops 启用 SSO。

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

  1. 导航到 Configuration(配置)> Security(安全)> AAA - Application Traffic(AAA - 应用程序流量)> Advanced Policies (高级策略)> Actions(操作)> LDAP

  2. LDAP Action(LDAP 操作)屏幕上,单击 Add(添加)。

  3. 创建身份验证 LDAP 服务器 屏幕上,设置以下参数的值,然后单击 创建

    • 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
    • 其他字段不是必填字段,因此可以根据需要进行配置。
  4. 导航到 Configuration(配置)> Security(安全)> AAA - Application Traffic(AAA - 应用程序流量)> Policies(策略)> Authentication(身份验证)> Advanced Policies (高级策略)> Policy(策略)。

  5. 身份验证策略 屏幕上,单击 添加

  6. 创建身份验证策略 页面上,为以下参数设置值,然后单击 创建。

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

存储身份验证上下文类参考值

配置为本地 IdP 的 NetScaler 可以存储 Citrix Workspace 提供的身份验证上下文类参考 (ACR) 值,以支持 Citrix Workspace 平台 (WSP) 的多域登录功能。

当 Citrix Workspace 将 ACR 值发送到 NetScaler IdP 的 OAuth 授权端点时,NetScaler 会存储 ACR 值。您可以使用这些 ACR 值来确定 nFactor 流中的下一个因素。

OAuth IdP 授权端点 /oauth/idp/ 登录会收到带有以下格式的 ACR 值参数的查询。NetScaler 将 ACR 值存储在用户会话属性中。

GET /oauth/idp/login?response_type=code&scope=openid%20profile%20ctxs_cc&acr_values=device_id:69eec3333333333+wsp:wspmultiurlmain.cloud.com&client_id=test&redirect_uri=https%3A%2F%2Fav6.aaa.local%2Foauth%2Flogin&state=Y3R4PXlFYkpFdEJOeDFLN0hUY2VCc1pBOGc2RjU3d21PcjJ2aXprZkhFSkdBTzVVTzM4eEZBUW1qTEFwR25DSE&code_challenge_method=S256&code_challenge=IJgD-qaJZdhuGt3m262BjjMXrFTOwioV6uSBA-uIY18

在上面的示例中,ACR 值参数为 acr_values=device_id:69eec3333333333+wsp:wspmultiurlmain.cloud.com

以下是如何在 nFactor 流中使用 ACR 值的表达式示例。

  • 要检索 WSP URL,请在策略配置 aaa.user.wsp.eq("URL") 中使用表达式。

    例如,

    add authentication policy wsp_check -rule aaa.user.wsp.eq("wspmultiurlmain.cloud.com ") -action ldap-act

  • 要从 ACR 值参数中检索设备 ID,请在策略配置中使用表达式 aaa.user.acr_values.value("device_id").eq(value)

    例如,

    add authentication policy acr_value_check -rule aaa.user.acr_values.value("device_id").eq("69eec3333333333") -action ldap-act

  • 要从 ACR 值参数中检索 WSP 值,请在策略配置 aaa.user.acr_values.value("wsp").eq("URL") 中使用表达式。

    例如,

    add authentication policy acr_value_check -rule aaa.user.acr_values.value("wsp").eq("wspmultiurlmain.cloud.com") -action ldap-act

使用本地 NetScaler Gateway 作为 Citrix Cloud 的身份提供程序