Citrix ADC

用于基本、摘要和 NTLM 身份验证的 SSO

Citrix ADC 和 Citrix Gateway 中的单点登录 (SSO) 配置可以在全局级别启用,也可以按流量级别启用。默认情况下,SSO 配置处于 关闭 状态,管理员可以按流量或全局启用 SSO。从安全角度来看,Citrix 建议管理员全局 关闭 SSO 并按流量启用。此增强功能旨在通过在全球范围内丢弃某些类型的 SSO 方法来使 SSO 配置更加安全。

注意:

在 Citrix ADC 功能版本 13.0 Build 64.35 及更高版本中,以下 SSO 类型在全球范围内被拒绝。

  • 基本认证
  • 摘要访问身份验证
  • 没有协商 NTLM2 密钥或协商签名的 NTLM

未受影响的 SSO 类型

以下 SSO 类型不受此增强的影响。

  • Kerberos 身份验证
  • SAML 身份验证
  • 基于表单的身份验证
  • OAuth 持有者身份验证
  • 使用协商 NTLM2 密钥或协商签名的 NTLM

影响的 SSO 配置

以下是受影响(被拒绝)的 SSO 配置。

全局配置

set tmsessionparam -SSO ON
set vpnparameter -SSO ON
add tmsessionaction tm_act -SSO ON
add vpn sessionaction tm_act -SSO ON
<!--NeedCopy-->

每路流量配置

add vpn trafficaction tf_act http -SSO ON
add tm trafficaction tf_act -SSO ON
<!--NeedCopy-->

您可以作为一个整体启用/禁用 SSO,而且不能修改单个 SSO 类型。

应采取的安全措施

作为安全措施的一部分,对安全敏感的 SSO 类型在全局配置中被拒绝,但只能通过流量操作配置使用。 因此,如果后端服务器需要不使用协商 NTLM2 密钥或协商签名的 Basic、Digest 或 NTLM,则管理员只能通过以下配置允许 SSO。

流量操作

add vpn trafficaction tf_act  http -SSO ON
add tm trafficaction tf_act -SSO ON
<!--NeedCopy-->

流量策略

add tm trafficpolicy <name> <rule> tf_act
add vpn trafficpolicy <name> <rule> tf-act
<!--NeedCopy-->

管理员必须为流量策略配置相应的规则,以确保仅为可信后端服务器启用 SSO。

AAA-TM

基于全局配置的场景:

set tmsessionparam -SSO ON
<!--NeedCopy-->

解决方法:

add tm trafficaction tf_act -SSO ON
add tm trafficpolicy tf_pol true tf_act
<!--NeedCopy-->

将以下流量策略绑定到所有需要 SSO 的 LB 虚拟服务器:

bind lb vserver <LB VS Name> -policy tf_pol -priority 65345
<!--NeedCopy-->

基于会话策略配置的场景:

add tmsessionaction tm_act -SSO ON
add tmsession policy <name> <rule> tm_act
add tm trafficaction tf_act -SSO ON
add tm trafficpolicy tf_pol <same rule as session Policy> tf_act
<!--NeedCopy-->

注意点:

  • 必须将前面会话策略的 Citrix ADC AAA 用户/组替换为流量策略。

  • 将以下策略绑定到前面会话策略的负载平衡虚拟服务器,

bind lb vserver [LB VS Name] -policy tf_pol -priority 65345
<!--NeedCopy-->
  • 如果配置了具有其他优先级的流量策略,则前面的命令不起作用。

以下部分介绍基于与流量相关的多个流量策略冲突的场景:

对于特定的 TM 流量,仅应用一个 TM 流量策略。由于 SSO 功能的全局设置发生了变化,如果已经应用了具有高优先级(不需要 SSO 配置)的 TM 流量策略,则应用其他低优先级的 TM 流量策略可能不适用。以下部分描述了确保此类案件得到处理的方法。

考虑以下三个优先级较高的流量策略应用于负载平衡 (LB) 虚拟服务器:

add tm trafficaction tf_act1 <Addition config>
add tm trafficaction tf_act2 <Addition config>
add tm trafficaction tf_act3 <Addition config>

add tm trafficpolicy tf_pol1 <rule1> tf_act1
add tm trafficpolicy tf_pol2 <rule2> tf_act2
add tm trafficpolicy tf_pol3 <rule3> tf_act3

bind lb vserver <LB VS Name> -policy tf_pol1 -priority 100
bind lb vserver <LB VS Name> -policy tf_pol2 -priority 200
bind lb vserver <LB VS Name> -policy tf_pol3 -priority 300
<!--NeedCopy-->

容易出错的方法-要解析全局 SSO 配置,请添加以下配置:

add tm trafficaction tf_act_default -SSO ON
add tm trafficpolicy tf_pol_default true tf_act_default

bind lb vserver <LB VS Name> -policy tf_pol_default -priority 65345
<!--NeedCopy-->

注意: 前面的修改可能会中断流量的 SSO,<tf_pol1/tf_pol2/tf_pol3> 就这些流量而言,流量策略 未应用。

正确的方法-为了缓解这种情况,必须为每个相应的流量操作单独应用 SSO 属性:

例如,在上述情况中,要使通信点击 tf_pol1/tf_pol3 时发生 SSO,必须与以下配置一起应用 .

add tm trafficaction tf_act1 <Addition config> -SSO ON
add tm trafficaction tf_act3 <Addition config> -SSO ON
<!--NeedCopy-->

Citrix Gateway 案例

基于全局配置的场景:

set vpnparameter -SSO ON
<!--NeedCopy-->

解决方法:

add vpn trafficaction vpn_tf_act http  -SSO ON
add vpn trafficpolicy vpn_tf_pol  true vpn_tf_act
bind the following traffic policy to all VPN virtual server where SSO is expected:
bind vpn vserver vpn_vs -policy vpn_tf_pol -priority 65345
<!--NeedCopy-->

基于会话策略配置的场景:

add vpn sessionaction vpn_sess_act -SSO ON
add vpnsession policy <name> <rule> vpn_sess_act
<!--NeedCopy-->

注意事项:

  • 必须将前面会话策略的 Citrix ADC AAA 用户/组替换为流量策略。

  • 将以下策略绑定到之前的会话策略 bind lb virtual server [LB VS Name] -policy tf_pol -priority 65345 的 LB 虚拟服务器。

  • 如果配置了具有其他优先级的流量策略,则前面的命令不起作用。以下部分介绍基于与流量相关的多个流量策略冲突的场景。

基于与流量相关的多个流量策略冲突的功能场景:

对于特定的 Citrix Gateway 流量,仅应用一个 VPN 流量策略。由于 SSO 功能的全局设置发生了变化,如果其他具有高优先级的 VPN 流量策略没有必需的 SSO 配置,则应用具有低优先级的额外 VPN 流量策略可能不适用。

以下部分描述了确保此类案件得到处理的方法:

假设对VPN虚拟服务器应用了三种具有更高优先级的流量策略:

add vpn trafficaction tf_act1 <Addition config>
add vpn trafficaction tf_act2 <Addition config>
add vpn trafficaction tf_act3 <Addition config>

add vpn trafficpolicy tf_pol1 <rule1> tf_act1
add vpn trafficpolicy tf_pol2 <rule2> tf_act2
add vpn trafficpolicy tf_pol3 <rule3> tf_act3

bind vpn vserver <VPN VS Name> -policy tf_pol1 -priority 100
bind vpn vserver <VPN VS Name> -policy tf_pol2 -priority 200
bind vpn vserver <VPN VS Name> -policy tf_pol3 -priority 300
<!--NeedCopy-->

容易出错的方法: 要解析全局 SSO 配置,请添加以下配置:

add vpn trafficaction tf_act_default -SSO ON
add vpn trafficpolicy tf_pol_default true tf_act_default

bind vpn vserver <VPN VS Name> -policy tf_pol_default -priority 65345
<!--NeedCopy-->

注意: 前面的修改可能会中断流量的 SSO,<tf_pol1/tf_pol2/tf_pol3> 因为这些流量,流量策略 未应用。

正确的方法: 为了缓解这种情况,必须为每个相应的流量操作单独应用 SSO 属性。

例如,在前面的情况中,为了使流量击中 tf_pol1/tf_pol3 时发生 SSO,必须与以下配置一起应用 .

add vpn trafficaction tf_act1 [Additional config] -SSO ON

add vpn trafficaction tf_act3 [Additional config] -SSO ON
<!--NeedCopy-->
用于基本、摘要和 NTLM 身份验证的 SSO