Citrix ADC

Web服务联合协议

Web服务联合(WS-Federation)是一种身份协议,当两个域之间存在信任关系时,它允许一个信任域中的安全令牌服务(Security Token Service, STS)向另一个信任域中的STS提供身份验证信息。

ws - federation的优点

WS-Federation同时支持主动和被动客户端,而SAML IdP只支持被动客户端。

  • 活动客户端是Microsoft原生客户端,如Outlook和Office客户端(Word、PowerPoint、Excel和OneNote)。
  • 被动客户端是基于浏览器的客户端,如谷歌Chrome、Mozilla Firefox和Internet Explorer。

使用Citrix ADC作为WS-Federation的先决条件

在将Citrix ADC设备配置为ADFS代理之前,请查看以下内容:

  • 活动目录。
  • 域SSL证书。
  • ADFS服务器上的Citrix ADC SSL证书和ADFS令牌签名证书必须相同。

重要的

SAML IdP现在能够处理WS-Federation协议。因此,要配置WS-Federation IdP,必须实际配置SAML IdP。您没有看到任何用户界面显式地提到WS-Federation。

当配置为ADFS代理和WS-Federation IdP时,Citrix ADC支持的特性

下表列出了配置为ADFS代理和WS-Federation IdP时Citrix ADC设备所支持的特性。

特性 将Citrix ADC设备配置为ADFS代理 Citrix ADC作为WS-Federation IdP Citrix ADC作为ADFSPIP
负载平衡 是的 是的 是的
SSL终止 是的 是的 是的
速度限制 是的 是的 是的
整合(减少DMZ服务器占用并节省公共IP) 是的 是的 是的
Web应用防火墙(WAF) 是的 是的 是的
身份验证将负载卸载到Citrix ADC设备 没有 是(主动和被动客户端) 是的
单点登录(SSO) 没有 是(主动和被动客户端) 是的
多因素(nFactor)身份验证 没有 是(主动和被动客户端) 是的
Azure多因素身份验证 没有 是(主动和被动客户端) 是的
可以避免使用ADFS服务器群 没有 是的 是的

将Citrix ADC设备配置为WS-Federation IdP

在DMZ区域中将Citrix ADC配置为WS-Federation IdP (SAML IdP)。ADFS服务器与后端AD域控制器一起配置。

ws - federation国内流离失所者

  1. 对Microsoft Office365的客户端请求被重定向到Citrix ADC设备。
  2. 用户输入用于多因素身份验证的凭据。
  3. Citrix ADC使用AD验证凭据,并在Citrix ADC设备上本地生成令牌。将凭据传递给Office365进行访问。

请注意

与F5 Networks负载均衡器相比,WS-Federation IdP支持是通过Citrix ADC设备本地完成的。

使用CLI将Citrix ADC设备配置为WS-Federation IdP (SAML IdP)

以下部分根据完成配置步骤的需求进行了分类。

配置LDAP认证并添加策略

重要的

对于域用户来说,要使用他们的公司电子邮件地址登录到Citrix ADC设备,您必须配置以下内容:

  • 在Citrix ADC设备上配置LDAP身份验证服务器和策略。
  • 将其绑定到您的身份验证、授权和审计虚拟IP地址(也支持使用现有的LDAP配置)。

  • add authentication ldapAction -serverIP -serverPort 636 -ldapBase "cn=Users,dc=domain,dc=com" -ldapBindDn "cn=administrator,cn=Users,dc=domain,dc=com" -ldapBindDnPassword <管理员密码> -encrypted -encryptmethod ENCMTHD_3 - ldploginname sAMAccountName -groupAttrName memberOf -subAttributeName cn-secType SSL -ssoNameAttribute UserPrincipalName -followReferrals ON -Attribute1 mail -Attribute2 objectGUID
  • add authentication Policy -rule true -action . add authentication Policy -rule true -action

例子

  • add authentication ldapAction CTXTEST_LDAP_Action -serverIP 3.3.3.3 -serverPort 636 -ldapBase "cn=Users,dc=ctxtest,dc=com" -ldapBindDn "cn=administrator,cn=Users,dc=ctxtest,dc=com" -ldapBindDnPassword xxxxxxxxxxx -encrypted -encryptmethod ENCMTHD_3 - ldploginname sAMAccountName -groupAttrName memberOf -subAttributeName cn -secType SSL-ssoNameAttribute UserPrincipalName -followReferrals ON -Attribute1 mail -Attribute2 objectGUID
  • add认证策略CTXTEST_LDAP_Policy -rule true -action CTXTEST_LDAP_Action

将Citrix ADC配置为WS-Federation IdP或SAML IdP

创建用于令牌生成的WS-Federation IdP (SAML IdP)动作和策略。后续将其与认证、授权和审计虚拟服务器绑定。

  • 添加身份验证samlIdPProfile < Domain_SAMLIDP_Profile > -samlIdPCertName < SSL_CERT > -assertionConsumerServiceURL“https://login.microsoftonline.com/login.srf”-samlIssuerName <发行人名称ADFS Office 365的服务器> -rejectUnsignedRequests了诺言urn:联盟:MicrosoftOnline -NameIDFormat持久-NameIDExpr“HTTP.REQ.USER.ATTRIBUTE(2)。B64ENCODE" -Attribute1 IDPEmail -Attribute1Expr "HTTP.REQ.USER.ATTRIBUTE(1)"
  • add authentication samlIdPPolicy -rule "HTTP.REQ.HEADER(\"referer\").CONTAINS(\"microsoft\") || true" -action . add authentication samlidp_policy . add authentication samlidp_policy

例子

  • 添加身份验证samlIdPProfile CTXTEST_SAMLIDP_Profile -samlIdPCertName ctxtest_newcert_2019 -assertionConsumerServiceURL“https://login.microsoftonline.com/login.srf”-samlIssuerName“http://ctxtest.com/adfs/services/trust/”-rejectUnsignedRequests了诺言urn:联盟:MicrosoftOnline -NameIDFormat持久-NameIDExpr“HTTP.REQ.USER.ATTRIBUTE(2)。B64ENCODE" -Attribute1 IDPEmail -Attribute1Expr "HTTP.REQ.USER.ATTRIBUTE(1)"
  • 添加认证samlIdPPolicy CTXTEST_SAMLIDP_Policy -rule "HTTP.REQ.HEADER(\"referer\").CONTAINS(\"microsoft\") || true" -action CTXTEST_SAMLIDP_Profile . txt

配置认证、授权和审计虚拟服务器,对使用企业凭证登录Office365的员工进行认证

add authentication vserver SSL

例子

  • 添加认证vserver CTXTEST_AAA_VS SSL 192.168.1.0
  • 绑定认证vserver CTXTEST_AAA_VS -portaltheme RfWebUI

绑定认证虚拟服务器和策略

  • 绑定认证vserver -policy -priority 100 -gotoPriorityExpression NEXT
  • bind authentication vserver -policy -priority 100 -gotoPriorityExpression NEXT

例子

  • 绑定认证vserver CTXTEST_AAA_VS -policy CTXTEST_SAMLIDP_Policy -priority 100 - gotopriityexpression NEXT
  • 绑定认证vserver CTXTEST_AAA_VS -policy CTXTEST_LDAP_Policy -priority 100 - gotopriityexpression NEXT
  • 绑定ssl vserver CTXTEST_AAA_VS -certkeyName ctxtest_newcert_2019

配置内容切换

  • add cs action -targetVserver . add cs action
  • add cs policy -rule "is_vpn_url || http.req.url.contains(\"/adfs/ls\") || http.req.url.contains(\"/adfs/services/trust\") || -action . txt

例子

  • 添加cs动作CTXTEST_CS_Action -targetVserver CTXTEST_AAA_VS
  • add cs policy CTXTEST_CS_Policy -rule "is_vpn_url || http.req.url.contains(\"/adfs/ls\") || http.req.url.contains(\"/adfs/services/trust\") || -action CTXTEST_CS_Action

将内容切换虚拟服务器绑定到策略

bind cs vserver CTXTEST_CSVS -policyName CTXTEST_CS_Policy -priority 100