2

背景(仅相关部分):我们有一个大型 Intranet asp.net 2.0/3.5 应用程序。
Web 服务器是 AD 域上的 Windows Server 2003。
客户端在 Windows、IE 6-8 上。Windows 身份验证,使用从 Windows 标识创建的自定义主体。Web 服务器位于 F5 NLB 后面,该 NLB 将用户转发到特定的 Web 服务器。(原因是我们公司的 F5 处理 w/kerberos 的限制)。没有系统范围的问题,如会话丢失、超时或服务器过载,一切运行正常。

一项功能需要委托——我们以经过身份验证的用户身份连接到网络文件共享,使用域/Web 服务器提供给我们的 Kerberos 令牌。

SPN、ACL 等似乎设置正确。

99.x% 的时间,一切正常。我们经常看到的问题是,在刷新时,令牌会从 kerberos 下降到 ntlm。我可以在 Web 服务器的事件日志上看到登录,显示一个调用得到这个:

登录过程:Kerberos 身份验证包:Kerberos

随后的调用(通常在 10 或 20 个页面加载后)得到以下信息:

登录过程:NtLmSsp 身份验证包:NTLM

任何人都知道什么可能导致后续回发有时会转到 NTLM?

谢谢!

4

1 回答 1

2

识别问题所需的所有工具和技术都在Troubleshooting Kerberos Errors 中。那个文件从来没有让我失望过。

NTLM 回退
您可能会发现安全日志记录了使用 NTLM 进行登录的事件,而该事件本应使用 Kerberos 身份验证进行。

问题
有两种情况可能会发生这种情况:
- 第一种情况是系统尝试使用 Kerberos 协议进行身份验证但失败。因此,系统会尝试使用 NTLM 进行身份验证。Windows Server 2003、Windows XP 和 Windows 2000 使用称为协商 (SPNEGO) 的算法来协商使用哪种身份验证协议。虽然 Kerberos 协议是默认的,但如果默认失败,Negotiate 会尝试 NTLM。
- 第二种情况是调用 Negotiate 返回 NTLM 作为唯一可用的协议。

确认
第一种情况将导致 Kerberos 身份验证失败,您可以通过检查事件日志中的错误或网络监视器捕获的数据包中的错误进行调查。这两种调查方法将在本文后面讨论...

于 2009-10-21T17:03:24.347 回答