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 IdP 上配置了 SAML IdP 的部署中用作 SAML SP。

用作 SAML SP 时,Citrix ADC 设备:

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

    注意

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

  • 可以从传入 SAML 断言中提取最多 127 个字节的属性名称。之前的限制是 63 个字节。

  • 支持发布、重定向和伪影绑定。

    注意

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

  • 可以解密断言。

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

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

    注意

    从 Citrix ADC 13.0 版本 63.x 及更高版本中,SAML 属性的个人最大长度已增加,以允许最大 40k 字节。所有属性的大小不得超过 40k 字节。

    在提供之前的 XML 时,Citrix ADC 设备可以将 Value1 和 Value2 作为给定属性的值提取,与仅提取 Value1 的旧固件相反。

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

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

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

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

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

  1. 配置 SAML SP 操作。

    示例

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

    add authentication samlAction SamlSPAct1 -samlIdPCertName nssp -samlSigningCertName nssp –samlRedirectUrl https://auth1.example.com -relaystateRule "AAA.LOGIN.RELAYSTATE.EQ(\"https://lb.example1.com/\")"

    注意事项

    • SamlACTION 命令 -samlIdPCertName 中提供的证书必须与来自 IdP 的相应证书匹配才能成功验证签名。
    • SAML 仅支持 RSA 证书。不支持 HSM、FIPS 等其他证书。
    • Citrix 建议在表达式中使用带尾随 “/” 的完整域名。
    • 管理员必须在 samlACTION 命令中为 relaysStateRule 配置表达式。表达式必须包含用户连接到的已发布域的列表,然后再重定向到身份验证虚拟服务器。例如,表达式必须包含使用此 SAML 操作进行身份验证的前端虚拟服务器(VPN、LB 或 CS)的域。

    有关该命令的更多详细信息,请参阅 https://developer-docs.citrix.com/projects/citrix-adc-command-reference/en/latest/authentication/authentication-samlActionhttps://support.citrix.com/article/CTX316577

  2. 配置 SAML 策略。

    示例

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

    add authentication policy SamlSPPol1 -rule true -action 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

    有关该命令的更多详细信息,请参阅 https://developer-docs.citrix.com/projects/citrix-adc-command-reference/en/latest/authentication/authentication-samlAction

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

  1. 导航到 安全 > AAA 策略 > 身份验证 > 基本策略 >SAML

  2. 选择 服务器 选项卡,单击 添加,输入以下参数的值,然后单击 创建

    参数描述:

    名称-服务器的名称

    重定向 URL-用户将对其进行身份验证的 URL。除非在 SAML 设置下,某些 IdP 具有无法访问的特殊 URL。

    单个注销 URL-指定的 URL,以便 Citrix ADC 可以识别何时将客户端发送回 IdP 以完成注销过程。我们不会在这个简单的部署中使用它。

    SAML 绑定-用于将客户端从 SP 移动到 IdP 的方法。这在 IdP 上需要相同,以便它了解客户端将如何连接到它。 当 Citrix ADC 充当 SP 时,它支持开机自检、重定向和工件绑定。

    注销绑定-重定向

    IDP 证书名称-存在于 SAML 签名证书下的 IDpCert 证书 (Base64)。

    用户字段 - IdP 的 SAML 身份验证表单中包含 SP 要提取的用户名(如果需要)的部分。

    签名证书名称-选择 Citrix ADC 用于对 IdP 的身份验证请求签名的 SAML SP 证书(带私钥)。必须将相同的证书(不带私钥)导入到 IdP,以便 IdP 可以验证身份验证请求签名。大多数国内流离失所者并不需要此字段。

    发行人名称-标识符。在 SP 和 IdP 上指定的唯一 ID,以帮助彼此识别服务提供商。

    拒绝未签名断言-是否需要对 IdP 的断言进行签名,可以指定的选项。您可以确保只有断言需要签名 (开),或者 IdP 的断言和响应都需要签名 (STRP)。

    受众-IdP 发送的断言适用的受众。这通常是表示 ServiceProvider 的实体名称或 URL。

    签名算法-RSA-SHA256

    摘要方法-SHA256

    默认身份验证组-除了提取的组之外,身份验证成功时还选择的默认组。

    组名字段-断言中包含用户组的标记的名称。

    倾斜时间(分钟)-此选项指定 Citrix ADC ServiceProvider 允许对传入断言允许的时钟偏差(以分钟为单位)。

  3. 同样,创建相应的 SAML 策略并将其绑定到身份验证虚拟服务器。

    导航到 Security(安全)> AAA - Application Traffic(AAA - 应用程序流量)> Virtual Servers(虚拟服务器),然后将 SAML 策略与身份验证虚拟服务器相关联。

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

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

Citrix ADC 作为 SAML SP