【问题标题】:Windows Authentication in IIS 8.5 - Intermittent 404 ErrorIIS 8.5 中的 Windows 身份验证 - 间歇性 404 错误
【发布时间】:2017-06-28 15:57:13
【问题描述】:

我正在将 ASP.NET WebForm 2.0 网站从 Windows Server 2003 (IIS 6) 迁移到 Windows Server 2012R2 (IIS 8.5)。

网站对内部用户使用 Windows 身份验证。

在 IIS 6 中,Windows 身份验证可以完美运行。

在 IIS 8.5 中,有时 Windows 身份验证有效,用户可以看到该站点,但有时,Windows 身份验证根本不起作用,用户看到 404 错误(“找不到网页”错误是显示)。

我使用 Fiddler 来查看网站的流量:

  • 每当 Windows 身份验证工作时,我都会看到 Web 请求具有如下授权标头: 授权:协商TlRMTVNTUAADAAAAGAAYAIAAA………………。 (共 650 个字符)

  • 每当 Windows 身份验证不起作用时,我都会看到 Web 请求没有授权标头或具有如下授权标头: 授权:协商 TlRMTVNTUAABAAAAl4II4gAAAAAAAAAAAAAAAAAAAAAAAAGAbEdAAAADw==(共 80 个字符)

您能建议如何解决此问题吗? 如何使 Windows 身份验证在 IIS 8.5 中始终如一地工作。

我还注意到 IIS 中的 Windows 身份验证设置中有 2 个提供程序: - 谈判 - NTML

我已经重新订购了这些提供商,但仍然遇到同样的问题。

【问题讨论】:

  • 该站点是内部网吗?对于您的两个示例,两台机器是否相同(例如 Win 10 x64、IE 11),还是有什么不同?
  • 是第二个选项,您的意思是“每当 Windows 身份验证不起作用时”
  • @RohithRajan:是的,我已经更新了我的问题。谢谢。
  • @tgolisch:是的,这是内部网站。我使用同一台机器访问该站点。

标签: asp.net iis webforms windows-authentication iis-8


【解决方案1】:

Negotiate 标头变小是 NTLM Pre-Auth 功能的一部分

Authorization: Negotiate TlRMTVNTUAABAAAAl4II4gAAAAAAAAAAAAAAAAAAAAAGAbEdAAAADw==

所以这是一个 IE 客户端功能,其中客户端仅发送部分身份验证标头作为 NTLM 预授权的一部分。article 谈到了这一点。我还看到您的网站没有仅使用 kerberos(NTLM 令牌以 TlRMTV 开头...)。

从 IIS 服务器端,您可以禁用内核模式 身份验证并验证它是否有效

  • 在 IIS 管理器中转到网站
  • 开启认证
  • 单击 Windows 身份验证
  • 从“操作”窗格(右侧)-打开高级设置
  • 取消检查内核模式身份验证
  • 重启 IIS

很奇怪,您收到 404 错误。您的应用程序中是否有任何要求,它只适用于 kerberos(kerberos 委托、双跳等)?通常你的应用程序应该有一个 kerberos 令牌,除非一些基本的东西是 fine

编辑:

正如之前所怀疑的,该网站似乎使用的是 NTLM 而不是 Kerberos。这是因为 kerberos 无法与外部域或 IP 地址一起使用。因此它将回退到 NTLM 并且使用 NTLM IE 可能会使用 NTLM pre-Auth 。我仍然不知道 404 错误,通常你应该得到 401 错误。获取 404 可能是特定于应用程序的。

【讨论】:

  • 谢谢罗希斯。经过3天的调查,我们的web团队发现这个网站有2个绑定:一个绑定内部IP地址,一个绑定外部IP地址。他们删除了与外部 IP 地址的绑定,并且该站点与 Windows 身份验证完美配合。
  • 很高兴知道,感谢您的更新。我有一些理论,会更新答案
【解决方案2】:

经过3天的调查,我们的web团队发现这个网站在IIS中有2个绑定:

  • 一个绑定到内部 IP 地址
  • 一个绑定到外部 IP 地址。

他们已删除与外部 IP 地址的绑定,并且该站点与 Windows 身份验证完美配合。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-02-05
    • 1970-01-01
    • 2019-04-17
    • 1970-01-01
    • 2021-04-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多