用户在单个 ASPX 页面 Server 2012 IIS 8.5 中遇到 Windows 身份验证提示

用户在单个 ASPX 页面 Server 2012 IIS 8.5 中遇到 Windows 身份验证提示

我有一个通过 Windows Server 2012 上的 IIS 8.5 发布的程序,可以利用 Windows 集成凭据进行 SSO。用户可以成功登录该程序并导航到绝大多数 aspx 页面。但是,当用户尝试登录某个特定的 aspx 页面时,他们会收到 Windows 身份验证提示,提示他们必须填写域凭据 10 次,然后才能访问该页面。

从 IIS 的角度来看,对于应用程序的虚拟目录,我们仅指定了 Windows 身份验证。如果我打开匿名身份验证(用户尝试导航到 aspx 页面时不会收到 Windows 身份验证提示),我可以解决这个问题,但这显然会破坏最终用户使用 Windows 集成凭据登录的能力——这对他们来说是不可接受的。因此,我怀疑这是 ASPX 页面或应用程序的 DLL 之一的 NTFS/共享权限存在某种问题。但是,我已经检查了所有相关的平面文件权限,但无济于事。

我已完成以下操作:-我已检查用户尝试访问的 aspx 页面的权限,从 AD 角度来看,一切似乎都正常。用户似乎拥有正确的权限。-直接登录应用服务器时不会发生此问题。-域管理员通过客户端工作站登录应用程序时也会遇到此问题。-运行 Fiddler 和 Wireshark 跟踪,正如预期的那样,我遇到了 401 错误。-使用非 Windows 凭据集成到应用程序的用户不会发生此问题。

对于可以检查的事情,我几乎没有想法了——还有其他人有什么想法吗?

答案1

因此,错误描述如下:

HTTP 错误 401.2 - 未经授权:由于服务器配置,访问被拒绝

基本上,您的客户端期望一种类型的身份验证,而服务器未配置为提供该类型,因此在客户端 - 服务器尝试协商身份验证方法的初始通信期间身份验证会失败。

根据我的经验,这通常是与 Kerberos 相关的问题,如果不是因为其他原因,默认设置似乎包括处于非功能状态的 Kerberos 身份验证……所以我首先会查看这一点。具体来说,请确保如果 IIS 在域服务帐户下运行,则您已注册 SPN(服务主体名称),您的描述让我相信您不这么认为。

当然,也可能是授权问题,其中有一些知识库,甚至非 Kerberos 身份验证问题

很有趣,对吧?万一这些都对你没用,这是我从 2003 年就保留下来的好东西,但仍然适用于基本身份验证故障排除。如果没有其他用途,它应该可以帮助您缩小问题范围,或者通过强制每个人都采用更简单的身份验证方法来解决这个问题。

答案2

在 IE 设置中找到了此问题的最终解决方案。当我们选中每次访问时检查存储页面的较新版本的选项时,此问题便消失了。重新启用该选项后,问题又出现了。

相关内容