Citrix ADC

Citrix ADC 如何为客户端身份验证实现 Kerberos

重要

仅 NetScaler 9.3 nCore 版本或更高版本中支持 KerberS/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 身份验证过程

NetScaler 上的 Kerberos 身份验证

Kerberos 身份验证发生在以下阶段:

客户端对 KDC 进行身份验证

  1. Citrix ADC 设备接收来自客户端的请求。
  2. Citrix ADC 设备上的流量管理(负载平衡或内容交换)虚拟服务器会向客户端发送质询。
  3. 为了应对挑战,客户将获得 Kerberos 票。
    • 客户端向 KDC 的身份验证服务器发送一个关于 TT 授予票证 (TGT) 的请求,并接收 TGT。(参见图中的 3,4,Kerberos 身份验证过程。)
    • 客户端将 TGT 发送到 KDC 的票证授予服务器,并接收 Kerberos 票证。(参见图中的 5,6,Kerberos 身份验证过程。)

注意

如果客户端已有 Kerberos 票证,其生命周期尚未过期,则不需要上述身份验证过程。此外,支持 SPNEGO 的 Web 服务、.NET 或 J2EE 等客户端获取目标服务器的 Kerberos 票证,创建 SPNEGO 令牌,并在发送 HTTP 请求时将令牌插入 HTTP 标头。他们不会通过客户端身份验证过程。

客户端请求服务。

  1. 客户端将包含 SPNEGO 令牌和 HTTP 请求的 Kerberos 票证发送到 Citrix ADC 上的流量管理虚拟服务器。SPNEGO 令牌具有必要的 GSSAPI 数据。
  2. Citrix ADC 设备在客户端和 Citrix ADC 之间建立安全上下文。如果 Citrix ADC 无法接受 Kerberos 票证中提供的数据,则会要求客户端获取其他票证。此循环会重复,直到 GSSAPI 数据可以接受并建立安全上下文为止。Citrix ADC 上的流量管理虚拟服务器充当客户端和物理服务器之间的 HTTP 代理。

Citrix ADC 设备完成身份验证。

  1. 安全上下文完成后,流量管理虚拟服务器将验证 SPNEGO 令牌。
  2. 从有效的 SPNEGO 令牌中,虚拟服务器提取用户 ID 和 GSS 凭据,并将它们传递给身份验证守护进程。
  3. 成功的身份验证将完成 Kerberos 身份验证。

Citrix ADC 如何为客户端身份验证实现 Kerberos