ADC

使用 Kerberos/NTLM 处理身份验证、授权和审核

Kerberos 是一种计算机网络身份验证协议,通过互联网提供安全的通信。它主要为客户端-服务器应用程序而设计,提供相互身份验证,通过这种身份验证,客户端和服务器可以相互确保对方的真实性。Kerberos 使用可信的第三方,称为密钥分发中心 (KDC)。KDC 由用于对用户进行身份验证的身份验证服务器 (AS) 和票证授予服务器 (TGS) 组成。

网络上的每个实体(客户端或服务器)都有一个只有自己和 KDC 知道的密钥。知道这个密钥意味着实体的真实性。对于网络上两个实体之间的通信,KDC 会生成会话密钥,称为 Kerberos 票证或服务票证。客户端向 AS 请求特定服务器的凭证。然后,客户会收到一张票证,称为票证授予票(TGT)。然后,客户与TGS联系,使用从AS收到的TGT来证明其身份,并要求提供服务。如果客户有资格获得该服务,TGS 会向客户发放 Kerberos 门票。然后,客户端联系托管服务的服务器(称为服务服务器),使用 Kerberos 票证来证明其有权接收服务。Kerberos 票证的使用寿命是可配置的。客户端仅向 AS 进行一次身份验证。如果它多次联系物理服务器,它会重复使用 AS 票证。

下图显示了 Kerberos 协议的基本功能。

图 1.Kerberos 的功能

Kerberos 身份验证过程

Kerberos 身份验证具有以下优点:

  • 更快的身份验证。当物理服务器从客户端获得 Kerberos 票证时,服务器有足够的信息可以直接对客户端进行身份验证。它不必联系域控制器进行客户端身份验证,因此身份验证过程更快。
  • 相互认证。当 KDC 向客户端发放 Kerberos 票证并且客户端使用票证访问服务时,只有经过身份验证的服务器才能解密 Kerberos 票证。如果 NetScaler 设备上的虚拟服务器能够解密 Kerberos 票证,则可以得出虚拟服务器和客户端均已通过身份验证的结论。因此,服务器的身份验证与客户端的身份验证同时发生。
  • 在 Windows 和其他支持 Kerberos 的操作系统之间进行单点登录。

Kerberos 身份验证可能有以下缺点:

  • Kerberos 有严格的时间要求;相关主机的时钟必须与 Kerberos 服务器时钟同步,以确保身份验证不会失败。您可以使用网络时间协议守护程序保持主机时钟同步,从而缓解这一缺点。Kerberos 票证有可用期,您可以对其进行配置。
  • Kerberos 需要中央服务器持续可用。当 Kerberos 服务器关闭时,任何人都无法登录。您可以通过使用多台 Kerberos 服务器和备用身份验证机制来降低这种风险。
  • 由于所有身份验证都由集中式 KDC 控制,因此该基础架构中的任何入侵,例如本地工作站的用户密码被盗,都可能允许攻击者冒充任何用户。您可以通过仅使用您信任的台式机或笔记本电脑,或者通过硬件令牌强制进行预身份验证,在一定程度上降低这种风险。

要使用 Kerberos 身份验证,必须在 NetScaler 设备和每台客户端上进行配置。

在身份验证、授权和审计方面优化 Kerberos 身份验证

现在,在 Kerberos 身份验证期间,NetScaler 设备可以优化和提高系统性能。身份验证、授权和审计守护程序会记住同一用户的未完成的 Kerberos 请求,以避免密钥分发中心 (KDC) 负载,从而避免重复请求。

使用 Kerberos/NTLM 处理身份验证、授权和审核