Web 服务联合身份验证协议

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

WS 联合身份验证的优势

WS 联合身份验证支持主动和被动客户端,其中 SAML IdP 仅支持被动客户端。

  • 活动客户端是 Microsoft 本机客户端,如 Outlook 和 Office 客户端(Word、PowerPoint、Excel 和 OneNote)。
  • 被动客户端是基于浏览器的客户端,如谷歌浏览器,火狐浏览器和互联网浏览器。

使用 Citrix ADC 作为 WS 联合身份验证的先决条件

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

  • Active Directory。
  • 域 SSL 证书。
  • ADFS 服务器上的 Citrix ADC SSL 证书和 ADFS 令牌签名证书必须相同。

重要

SAML IdP 现在能够处理 WS 联合身份验证协议。因此,要配置 WS 联合身份验证 IdP,必须实际配置 SAML IdP。您没有看到任何用户界面明确提到 WS 联合身份验证。

配置为 ADFS 代理和 WS 联合身份验证 IdP 时 Citrix ADC 支持的功能

下表列出了 Citrix ADC 设备在配置为 ADFS 代理和 WS 联合身份验证 IdP 时支持的功能。

功能 将 Citrix ADC 设备配置为 ADFS 代理 Citrix ADC 作为 WS 联合身份验证 IdP Citrix ADC 作为 ADFSPIP
负载平衡
SSL 终止
速率限制
整合(减少 DMZ 服务器占用空间并节省公有 IP)
Web 应用程序防火墙 (WAF)
身份验证卸载到 Citrix ADC 设备 是(主动和被动客户端)
单点登录 (SSO) 是(主动和被动客户端)
多因素身份验证 是(主动和被动客户端)
可以避免使用 ADFS 服务器场

将 Citrix ADC 设备配置为 WS 联合身份验证 IdP

将 Citrix ADC 配置为 DMZ 区域中的 WS 联合身份验证 IdP (SAML IdP)。ADFS 服务器与后端中的 AD 域 Controller 一起配置。

WS 联合身份验证 IdP

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

注意

与 F5 网络负载均衡器相比,WS 联合身份验证 IdP 支持是通过 Citrix ADC 设备本地完成的。

使用 CLI 将 Citrix ADC 设备配置为 WS 联合身份验证 IdP (SAML IdP)

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

配置 LDAP 身份验证并添加策略

重要

对于域用户,要使用其公司电子邮件地址登录 Citrix ADC 设备,必须配置以下内容:

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

  • add authentication ldapAction <Domain_LDAP_Action> -serverIP <Active Directory IP> -serverPort 636 -ldapBase "cn=Users,dc=domain,dc=com" -ldapBindDn "cn=administrator,cn=Users,dc=domain,dc=com" -ldapBindDnPassword <administrator password> -encrypted -encryptmethod ENCMTHD_3 -ldapLoginName sAMAccountName -groupAttrName memberOf -subAttributeName cn -secType SSL -ssoNameAttribute UserPrincipalName -followReferrals ON -Attribute1 mail -Attribute2 objectGUID
  • add authentication Policy <Domain_LDAP_Policy> -rule true -action <Domain_LDAP_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 -ldapLoginName sAMAccountName -groupAttrName memberOf -subAttributeName cn -secType SSL -ssoNameAttribute UserPrincipalName -followReferrals ON -Attribute1 mail -Attribute2 objectGUID
  • add authentication Policy CTXTEST_LDAP_Policy -rule true -action CTXTEST_LDAP_Action

将 Citrix ADC 配置为 WS 联合身份验证 IdP 或 SAML IdP

为令牌生成创建 WS 联合身份验证 IdP (SAML IdP) 操作和策略。在稍后阶段将其绑定到身份验证、授权和审核虚拟服务器。

  • add authentication samlIdPProfile <Domain_SAMLIDP_Profile> -samlIdPCertName <SSL_CERT> -assertionConsumerServiceURL "https://login.microsoftonline.com/login.srf" -samlIssuerName <Issuer Name for Office 365 in ADFS Server> -rejectUnsignedRequests OFF -audience urn:federation:MicrosoftOnline -NameIDFormat persistent -NameIDExpr "HTTP.REQ.USER.ATTRIBUTE(2).B64ENCODE" -Attribute1 IDPEmail -Attribute1Expr "HTTP.REQ.USER.ATTRIBUTE(1)"
  • add authentication samlIdPPolicy <Domain_SAMLIDP_Policy> -rule "HTTP.REQ.HEADER(\"referer\").CONTAINS(\"microsoft\") || true" -action <Domain_SAMLIDP_Profile>

示例

  • add authentication samlIdPProfile CTXTEST_SAMLIDP_Profile -samlIdPCertName ctxtest_newcert_2019 -assertionConsumerServiceURL "https://login.microsoftonline.com/login.srf" -samlIssuerName "http://ctxtest.com/adfs/services/trust/" -rejectUnsignedRequests OFF -audience urn:federation:MicrosoftOnline -NameIDFormat persistent -NameIDExpr "HTTP.REQ.USER.ATTRIBUTE(2).B64ENCODE" -Attribute1 IDPEmail -Attribute1Expr "HTTP.REQ.USER.ATTRIBUTE(1)"
  • add authentication samlIdPPolicy CTXTEST_SAMLIDP_Policy -rule "HTTP.REQ.HEADER(\"referer\").CONTAINS(\"microsoft\") || true" -action CTXTEST_SAMLIDP_Profile

配置身份验证、授权和审核虚拟服务器以使用公司凭据对登录 Office365 的员工进行身份验证

add authentication vserver <Domain_AAA_VS> SSL <IP_address>

示例

  • add authentication vserver CTXTEST_AAA_VS SSL 192.168.1.0
  • bind authentication vserver CTXTEST_AAA_VS -portaltheme RfWebUI

绑定身份验证虚拟服务器和策略

  • bind authentication vserver <Domain_AAA_VS> -policy <Domain_SAMLIDP_Policy> -priority 100 -gotoPriorityExpression NEXT
  • bind authentication vserver <Domain_AAA_VS> -policy <Domain_LDAP_Policy> -priority 100 -gotoPriorityExpression NEXT

示例

  • bind authentication vserver CTXTEST_AAA_VS -policy CTXTEST_SAMLIDP_Policy -priority 100 -gotoPriorityExpression NEXT
  • bind authentication vserver CTXTEST_AAA_VS -policy CTXTEST_LDAP_Policy -priority 100 -gotoPriorityExpression NEXT
  • bind ssl vserver CTXTEST_AAA_VS -certkeyName ctxtest_newcert_2019

配置内容切换

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

示例

  • add cs action 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