Citrix ADC如何为客户端身份验证实施Kerberos
重要
仅9.3 NetScaler nCore版本或更高版本中支持科伯/ NTLM身份验证,并且只能用于身份验证,授权和审核流量管理虚拟服务器。
Citrix ADC通过以下方式处理Kerberos身份验证中涉及的组件:
密钥配送中心(kdc)
在Windows 2000服务器或更高版本中,域控制器和KDC是Windows服务器的一部分。如果Windows服务器已启动并正在运行,则表示已配置域控制器和KDC。KDC也是Active Directory服务器。
注意
使用Windows Kerberos域控制器验证所有的Kerberos交互。
身份验证服务和协议协商
Citrix ADC设备支持对身份验证,授权和审核流量管理身份验证虚拟服务器进行Kerberos身份验证。如果Kerberos身份验证失败,Citrix ADC将使用NTLM身份验证。
默认情况下,Windows 2000服务器和更高版本的Windows服务器版本使用Kerberos进行身份验证,授权和审核。如果您创建了一个身份验证策略,并且Citrix ADC将尝试使用Kerberos协议进行身份验证,授权和审核,如果客户端的浏览器未能收到Kerberos票证,Citrix ADC将使用NTLM身份验证。这一过程被称为谈判。
在以下情况下,客户端可能无法收到Kerberos票证:
- 客户端上不支持Kerberos。
- 在客户端上不启用Kerberos。
- 客户端位于KDC以外的域中。
- 客户端无法访问KDC上的访问目录。
对于Kerberos / NTLM身份验证,Citrix ADC不使用Citrix ADC设备上本地存在的数据。
授权
流量管理虚拟服务器可以是负载平衡虚拟服务器或内容交换虚拟服务器。
审核
Citrix ADC设备支持使用以下审核日志记录对Kerberos身份验证进行审核:
- 完整的流量管理最终用户活动的审核跟踪
- Syslog和高性能TCP日志记录
- 完整的系统管理员审核跟踪
- 所有系统事件
- 脚本化日志格式
支持的环境
Kerberos身份验证不需要Citrix ADC上的任何特定环境。客户端(浏览器)必须提供对Kerberos身份验证的支持。
高可用性
在高可用性设置中,只有活动的Citrix ADC加入域。在故障转移的情况下,Citrix ADC lwagent守护进程将辅助Citrix ADC设备连接到域。此功能无需特定配置。
Kerberos身份验证过程
下图显示了Citrix ADC环境中Kerberos身份验证的典型过程。
图 1.Citrix ADC上的Kerberos身份验证过程
Kerberos身份验证发生在以下阶段:
客户端对KDC进行身份验证
- Citrix ADC设备接收来自客户端的请求。
- Citrix ADC设备上的流量管理(负载平衡或内容交换)虚拟服务器会向客户端发送质询。
- 为了应对挑战,客户将获得Kerberos票。
- 客户端向KDC的身份验证服务器发送一个关于TT授予票证(TGT)的请求,并接收TGT。(参见图中的3,4,Kerberos身份验证过程。)
- 客户端将TGT发送到KDC的票证授予服务器,并接收Kerberos票证。(参见图中的5,6,Kerberos身份验证过程。)
注意
如果客户端已有Kerberos票证,其生命周期尚未过期,则不需要上述身份验证过程。此外,支持SPNEGO的Web服务,。净或J2EE等客户端获取目标服务器的Kerberos票证,创建SPNEGO令牌,并在发送HTTP请求时将令牌插入HTTP标头。他们不会通过客户端身份验证过程。
客户端请求服务。
- 客户端将包含SPNEGO令牌和HTTP请求的Kerberos票证发送到Citrix ADC上的流量管理虚拟服务器。Spnego令牌具有必要的gssapi数据。
- Citrix ADC设备在客户端和Citrix ADC之间建立安全上下文如果Citrix ADC无法接受Kerberos票证中提供的数据,则会要求客户端获取其他票证。此循环会重复,直到gssapi数据可以接受并建立安全上下文为止。Citrix ADC上的流量管理虚拟服务器充当客户端和物理服务器之间的 HTTP 代理。
Citrix ADC设备完成身份验证。
- 安全上下文完成后,流量管理虚拟服务器将验证spnego令牌。
- 从有效的SPNEGO令牌中,虚拟服务器提取用户ID和GSS凭据,并将它们传递给身份验证守护进程。
- 成功的身份验证将完成Kerberos身份验证。