NetScaler 作为 Active Directory 联合身份验证服务代理
Active Directory 联合身份验证服务 (ADFS) 是一项 Microsoft 服务,可为经 Active Directory 身份验证的客户端提供到企业数据中心外部资源的单点登录 (SSO) 体验。ADFS 服务器场允许内部用户访问外部云托管服务。但是,当外部用户参与混合时,必须向外部用户提供远程连接和通过联合身份访问基于云的服务的方法。大多数企业都不希望保持 ADFS 服务器在 DMZ 中处于公开状态。因此,ADFS 代理在远程用户连接和应用程序访问方面起着关键作用。
十多年来,NetScaler 设备在远程用户连接和应用程序访问方面发挥着类似的作用。NetScaler 设备成为用作 ADFS 代理的首选解决方案,用于支持新的 ADFS 实现以启用以下服务:
- 安全连接。
- 联合身份的身份验证和处理。
有关 NetScaler 作为 SAML IdP 的更多信息,请参阅 NetScaler 作为 SAML IdP。
ADFS 代理的优势
- 减少 DMZ 占用的空间,以满足大多数企业的需求。
- 为最终用户提供 SSO 体验。
- 支持丰富的预身份验证方法并启用多重身份验证。
- 同时支持主动和被动客户端。
使用 NetScaler 作为 ADFS 代理的必备条件
在将 NetScaler 设备配置为 ADFS 代理之前,请确保满足以下必备条件:
- 安装了内部版本 12.1 或更高版本的 NetScaler 设备。
- 域 ADFS 服务器。
- 域 SSL 证书。
- 用于内容交换虚拟服务器的虚拟 IP。
- 在 NetScaler 设备上启用负载平衡、SSL 卸载、内容交换、重写以及身份验证、授权和审计流量管理功能。
将 NetScaler 设备配置为 ADFS 代理
要实现此用例,请将 NetScaler 配置为 DMZ 区域中的 ADFS 代理。ADFS 服务器与后端中的 AD 域控制器一起配置。
-
访问 Microsoft Office365 的客户端请求将重定向到部署为 ADFS 代理的 NetScaler。
-
用户的凭据将传递到 ADFS 服务器。
-
ADFS 服务器通过域的本地 AD 对凭据进行身份验证。
-
使用 AD 成功验证凭据后,ADFS 服务器会生成一个令牌,该令牌将传递给 Microsoft Office365 用于建立会话。
以下是在配置为 ADFS 代理之前配置 NetScaler 设备所涉及的高级步骤。
在 NetScaler 命令提示符下,键入以下命令:
-
为后端创建 SSL 配置文件并在 SSL 配置文件中启用 SNI。禁用 SSLv3/TLS1。
add ssl profile <new SSL profile> -sslprofileType backEnd -sniEnable ENABLED -ssl3 DISABLED -tls1 DISABLED -commonName <FQDN of ADFS>
-
为服务禁用 SSLv3/TLS1。
set ssl service <adfs service name> -sslProfile <SSL profile created in the above step>
-
为后端服务器握手启用 SNI 扩展。
set vpn parameter –backendServerSni ENABLED
set ssl parameter -denySSLReneg NONSECURE
使用 CLI 将 NetScaler 设备配置为 ADFS 代理
下面各部分内容是根据完成配置步骤的要求进行分类的。
配置 ADFS 服务
-
在 NetScaler 上为 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
-
为内容交换虚拟服务器配置 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)。
-
配置 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
-
将 ADFS 负载平衡虚拟服务器绑定到 ADFS 服务。
bind lb vserver <Domain_ADFS_LBVS> <Domain_ADFS_Service>
示例
bind lb vserver CTXTEST_ADFS_LBVS CTXTEST_ADFS_Service
-
绑定 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),该虚拟 IP 将 NAT 为公共 IP。外部和内部流量必须可以到达。
-
使用免费 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
-
将内容交换虚拟服务器绑定到负载平衡虚拟服务器。
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
-
绑定 SSL 虚拟服务器证书密钥对。
bind ssl vserver <Domain_CSVS> -certkeyName <SSL_CERT>
示例
bind ssl vserver CTXTEST_CSVS -certkeyName ctxtest_newcert_2019
支持的协议
Microsoft 提供的协议在与 NetScaler 设备集成方面起着至关重要的作用。NetScaler 作为 ADFS 代理支持以下协议:
- WS-Federation。有关详细信息,请参阅 Web 服务联合协议。
- ADFSPIP。有关详细信息,请参阅 Active Directory 联合服务代理集成协议的
注意
作为 ADFS 代理部署时,NetScaler 设备不支持设备证书身份验证。