Citrix ADC

Citrix ADC 作为 Active Directory 联合身份验证服务代理

Active Directory 联合身份验证服务 (ADFS) 是一项 Microsoft 服务,用于启用经过活动目录身份验证的客户端到企业数据中心外部的资源的单点登录 (SSO) 体验。ADFS 服务器场允许内部用户访问外部云托管服务。但是,当外部用户被引入混合时,必须为外部用户提供远程连接和通过联合身份访问基于云的服务的方法。大多数企业不希望将 ADFS 服务器保留在 DMZ 中。因此,ADFS 代理在远程用户连接和应用程序访问中起着关键作用。

十多年来,Citrix ADC 设备在远程用户连接和应用程序访问方面扮演着类似的角色。Citrix ADC 设备成为用作 ADFS 代理的首选解决方案,用于支持新的 ADFS 实现以启用以下服务:

  • 安全连接。
  • 身份验证和处理联合身份。

有关作为 SAML IdP 的 Citrix ADC 的更多信息,请参阅Citrix ADC 作为 SAML IdP

ADFS 代理的优势

  • 减少 DMZ 的占地面积,以满足大多数企业的需求。
  • 为最终用户提供 SSO 体验。
  • 支持丰富的预身份验证方法,并启用多重身份验证。
  • 支持主动和被动客户端。

使用 Citrix ADC 作为 ADFS 代理的先决条件

在将 Citrix ADC 设备配置为 ADFS 代理之前,请确保满足以下先决条件。

  • 具有 12.1 版本或更高版本的 Citrix ADC 设备。
  • 域 ADFS 服务器。
  • 域 SSL 证书。
  • 用于内容交换虚拟服务器的虚拟 IP。
  • 在 Citrix ADC 设备上启用负载平衡、SSL 卸载、内容切换、重写以及身份验证、授权和审核流量管理功能。

将 Citrix ADC 设备配置为 ADFS 代理

要实现此使用案例,请将 Citrix ADC 配置为 DMZ 区域中的 ADFS 代理。ADFS 服务器与后端中的 AD 域 Controller 一起配置。

ADFS 代理

  1. 访问 Microsoft Office365 的客户端请求将被重定向到作为 ADFS 代理部署的 Citrix ADC。

  2. 用户的凭据将传递到 ADFS 服务器。

  3. ADFS 服务器使用域的本地 AD 对凭据进行身份验证。

  4. ADFS 服务器在使用 AD 成功验证凭据后生成一个令牌,该令牌将传递给 Microsoft Office365 进行会话建立。

下面是在配置为 ADFS 代理之前配置 Citrix ADC 设备所涉及的高级步骤。

在 Citrix ADC 命令提示符下,键入以下命令:

  1. 为后端创建 SSL 配置文件,并在 SSL 配置文件中启用 SNI。禁用 SSLv3/TLS1。

    add ssl profile <new SSL profile> -sniEnable ENABLED -ssl3 DISABLED -tls1 DISABLED -commonName <FQDN of ADFS>

  2. 禁用服务的 SSLv3/TLS1。

    set ssl service <adfs service name> -sslProfile ns_default_ssl_profile_backend

  3. 为后端服务器握手启用 SNI 扩展。

    • set vpn parameter –backendServerSni ENABLED
    • set ssl parameter -denySSLReneg NONSECURE

使用 CLI 将 Citrix ADC 设备配置为 ADFS 代理

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

配置 ADFS 服务

  1. 在 Citrix ADC 上为 ADFS 服务器配置 ADFS 服务。

    add service <Domain_ADFS_Service> <ADFS Server IP> SSL 443 -gslb NONE -maxClient 0 -maxReq 0 -cip DISABLED -usip NO -useproxyport YES -sp OFF -cltTimeout 180 -svrTimeout 360 -CKA NO -TCPB NO -CMP NO

示例

add service CTXTEST_ADFS_Service 1.1.1.1 SSL 443 -gslb NONE -maxClient 0 -maxReq 0 -cip DISABLED -usip NO -useproxyport YES -sp OFF -cltTimeout 180 -svrTimeout 360 -CKA NO -TCPB NO -CMP NO
  1. 为内容交换虚拟服务器配置 FQDN 并启用 SNI。

    set ssl service <Domain_ADFS_Service> -SNIEnable ENABLED -commonName <sts.domain.com>

示例

set ssl service CTXTEST_ADFS_Service -SNIEnable ENABLED -commonName sts.ctxtest.com

配置 ADFS 负载平衡虚拟服务器

重要

安全流量需要域 SSL 证书 (SSL_CERT)。

  1. 配置 ADFS 负载平衡虚拟服务器。

    add lb vserver <Domain_ADFS_LBVS> SSL <IP_address> -persistenceType NONE -cltTimeout 180

    示例

    add lb vserver CTXTEST_ADFS_LBVS SSL 192.168.1.0 -persistenceType NONE -cltTimeout 180

  2. 将 ADFS 负载平衡虚拟服务器绑定到 ADFS 服务。

    bind lb vserver <Domain_ADFS_LBVS> <Domain_ADFS_Service>

    示例

    bind lb vserver CTXTEST_ADFS_LBVS CTXTEST_ADFS_Service

  3. 绑定 SSL 虚拟服务器证书-密钥对。

    bind ssl vserver <Domain_ADFS_LBVS> -certkeyName <SSL_CERT>

    示例

    bind ssl vserver CTXTEST_ADFS_LBVS -certkeyName ctxtest_newcert_2019

为域配置内容交换虚拟服务器

注意

内容交换虚拟服务器需要一个免费的虚拟 IP(例如,2.2.2.2),它被 Natted 到公共 IP。对于外部和内部流量,它必须可以访问。

  1. 创建一个内容交换虚拟服务器免费 VIP.

    add cs vserver <Domain_CSVS> SSL <FREE VIP> 443 -cltTimeout 180 -persistenceType NONE

    示例

    add cs vserver CTXTEST_CSVS SSL 2.2.2.2 443 -cltTimeout 180 -persistenceType NONE

  2. 将内容交换虚拟服务器绑定到负载平衡虚拟服务器。

    bind cs vserver <Domain_CSVS> -lbvserver <Domain_ADFS_LBVS>

    示例

    • bind cs vserver CTXTEST_CSVS -lbvserver CTXTEST_ADFS_LBVS
    • set ssl vserver CTXTEST_CSVS -sessReuse DISABLED
  3. 绑定 SSL 虚拟服务器证书-密钥对。

    bind ssl vserver <Domain_CSVS> -certkeyName <SSL_CERT>

    示例

    bind ssl vserver CTXTEST_CSVS -certkeyName ctxtest_newcert_2019

支持的协议

Microsoft 提供的协议在与 Citrix ADC 设备集成方面起着至关重要的作用。作为 ADFS 代理的 Citrix ADC 支持以下协议:

注意

Citrix ADC 设备在部署为 ADFS 代理时不支持设备证书身份验证。

Citrix ADC 作为 Active Directory 联合身份验证服务代理