Citrix ADC

Citrix ADC 作为 SAML SP

SAML 服务提供程序 (SP) 是由服务提供程序部署的 SAML 实体。当用户尝试访问受保护的应用程序时,SP 会评估客户端请求。如果客户端未经身份验证(没有有效的 NSC_TMAA 或 NSC_TMAS Cookie),SP 将请求重定向到 SAML 身份提供程序 (IdP)。

SP 还验证从 IdP 接收的 SAML 断言。

将 Citrix ADC 设备配置为 SP 时,与相关 SAML 操作关联的流量管理虚拟服务器(负载平衡或内容交换)将接收所有用户请求。

Citrix ADC 设备还支持注销期间的 POST 和重定向绑定。

注意

在部署中,Citrix ADC 设备可用作 SAML SP,其中 SAML IdP 可以在设备上或任何外部 SAML IdP 上配置 SAML IdP。

当用作 SAML SP 时,Citrix ADC 设备:

  • 可以从 SAML 令牌中提取用户信息(属性)。然后,可以在 Citrix ADC 设备上配置的策略中使用此信息。例如,如果要提取 GroupMember 和 emailaddress 属性,请在 SAMLAction 中指定 Attribute2 参数为 GroupMember,指定 Attribute3 参数为 emailaddress。

    注意

    默认属性(例如用户名、密码和注销 URL)不能在属性 1-16 中提取,因为它们被隐式解析并存储在会话中。

  • 可以从传入的 SAML 断言中提取最多 127 字节的属性名称。之前的限制是 63 字节。NetScaler 11.0 Build 64.x 中引入了支持。

  • 支持帖子,重定向和工件绑定。NetScaler 11.0 Build 55.x 中引入了对重定向和项目绑定的支持。

    注意

    当膨胀或解码后的断言大于 10K 时,不应对大量数据使用重定向绑定。

  • 可以解密断言。NetScaler 11.0 Build 55.x 中引入了支持。

  • 可以从 SAML 断言中提取多值属性。发送这些属性是嵌套的 XML 标签,例如:

    <AttributeValue> <AttributeValue>Value1</AttributeValue> <AttributeValue>Value2</AttributeValue> </AttributeValue>

    与之前的 XML 一起显示时,Citrix ADC 设备可以将 Value1 和 Value2 作为给定属性的值提取,而不是仅提取 Value1 的旧固件。

    注意

    NetScaler 11.0 Build 64.x 中引入了支持。

  • 可以指定 SAML 断言的有效性。

    如果 Citrix ADC SAML IdP 和对等方 SAML SP 上的系统时间不同步,则任何一方都可能使消息失效。为了避免这种情况,您现在可以配置断言有效的时间持续时间。

    此持续时间(称为“偏斜时间”)指定应接受消息的分钟数。可以在 SAML SP 和 SAML IdP 上配置偏斜时间。

    注意

    NetScaler 11.0 Build 64.x 中引入了支持。

  • 可以在身份验证请求中向外部 IdP(身份提供商)发送名为“ForceAuth”的额外属性。默认情况下,ForceAuthn 设置为“False”。它可以设置为“True”,以建议 IdP 在现有身份验证上下文的情况下强制进行身份验证。此外,当使用工件绑定配置时,Citrix ADC SP 在查询参数中执行身份验证请求。

使用命令行界面将 Citrix ADC 设备配置为 SAML SP 的步骤

  1. 配置 SAML SP 操作。

    示例

    以下命令添加了用于重定向未经身份验证的用户请求的 SAML 操作。

    add authentication samlAction SamlSPAct1 -samlIdPCertName nssp –samlRedirectUrl https://auth1.example.com

  2. 配置 SAML 策略。

    示例

    以下命令定义了将先前定义的 SAML 操作应用于所有流量的 SAML 策略。

    add authentication samlPolicy SamlSPPol1 ns_true SamlSPAct1

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

    示例

    以下命令将 SAML 策略绑定到名为“av_saml”的身份验证虚拟服务器。

    bind authentication vserver av_saml -policy SamlSPPol1

  4. 将身份验证虚拟服务器绑定到相应的流量管理虚拟服务器。

    示例

    以下命令添加一个名为“lb1_ssl”的负载平衡虚拟服务器,并将名为“av_saml”的身份验证虚拟服务器关联到负载平衡虚拟服务器。 add lb vserver lb1_ssl SSL 10.217.28.224 443 -persistenceType NONE -cltTimeout 180 -AuthenticationHost auth1.example.com -Authentication ON -authnVsName av_saml

使用 GUI 将 Citrix ADC 设备配置为 SAML SP 的步骤

  1. 配置 SAML 操作和策略。

    导航到安全”>“AAA-应用程序流量”>“策略”>“身份验证”>“高级策略”>“策略”,创建以 SAML 作为操作类型的策略,并将所需的 SAML 操作与策略关联。

  2. 将 SAML 策略与身份验证虚拟服务器关联。

    导航到安全”>“AAA-应用程序流量”>“虚拟服务器,并将 SAML 策略与身份验证虚拟服务器关联。

  3. 将身份验证服务器与相应的流量管理虚拟服务器关联。

    导航到流量管理 > 负载平衡(或内容切换)> 虚拟服务器,选择虚拟服务器,然后将身份验证虚拟服务器与其关联。

增加 SAML SP 中的 SessionIndex 大小

SAML 服务提供程序 (SP) 的 SessionIndex 大小增加到 96 字节。以前,SessionIndex 的默认最大大小为 63 字节。

SAML SP 的自定义身份验证类参考支持

您可以在 SAML 操作命令中配置自定义身份验证类引用属性。使用自定义身份验证类引用属性,您可以在相应的 SAML 标签中自定义类名称。作为 SAML SP 身份验证请求的一部分,自定义身份验证类引用属性与命名空间一起发送到 SAML IdP。

以前,使用 SAML 操作命令,您只能配置在 authnCtxClassRef 属性中定义的一组预定义类。

重要

在配置 customAuthnCtxClassRef 时,请确保满足以下条件:

  • 类的名称必须包含字母数字字符或带有正确 XML 标签的有效 URL。

  • 如果您必须配置多个自定义类,则每个类必须用逗号分隔。

使用 CLI 配置 customAuthnCtxClassRef 属性

在命令提示窗口中,键入:

  • add authentication samlAction <name> [-customAuthnCtxClassRef <string>]
  • set authentication samlAction <name> [-customAuthnCtxClassRef <string>]

示例:

  • add authentication samlAction samlact1 –customAuthnCtxClassRef http://www.class1.com/LoA1,http://www.class2.com/LoA2
  • set authentication samlAction samlact2 –customAuthnCtxClassRef http://www.class3.com/LoA1,http://www.class4.com/LoA2

使用 GUI 配置 customAuthnCtxClassRef 属性

  1. 导航到安全 > AAA - 应用程序流量 > 策略 > 身份验证 > 高级策略 > 操作 > SAML
  2. 在 SAML 页面上,选择服务器选项卡,然后单击添加
  3. 创建身份验证 SAML 服务器页上,输入 SAML 操作的名称。
  4. 向下滚动以配置自定义身份验证类类型部分中的类型。

    自定义身份验证类型