我有一个通过Windows Server 2012上的IIS 8.5发布的应用程序,可以利用Windows集成凭证进行SSO。 用户可以成功login到应用程序并导航到绝大多数的aspx页面。 但是,当用户尝试login到特定的aspx页面时,他们会收到一个Windows身份validation提示,他们必须在允许他们访问该页面之前将他们的域凭据填充10次。
从IIS的angular度来看,对于应用程序的虚拟目录,我们只有Windows身份validation指定。 如果打开“匿名身份validation”(用户在尝试导航到aspx页面时不提示用户inputWindows身份validation提示),则可以解决该问题,但这显然会打破terminal用户使用Windows集成凭据login的能力 – 这是他们不能接受的。 因此,我怀疑这是NTFS /共享权限的ASPX页面或应用程序的DLL之一的某种问题。 不过,我已经检查了所有相关的平面文件权限和恶作剧无济于事。
我做了以下工作: – 我检查了用户试图访问的aspx页面的权限,从AD的angular度来看,一切似乎都没有问题。 用户似乎拥有正确的权限。 – 直接签入应用程序服务器时不会发生此问题。 – 通过客户端工作站login到应用程序时,pipe理员也会遇到问题。 – 一个提琴手和Wireshark跟踪,正如所料,我遇到了401错误。 – 使用非Windows凭据集成到应用程序的用户不会出现问题。
我可以检查的东西,我想出来的想法 – 有没有其他人有任何想法?
所以,错误的描述如下:
HTTP错误401.2 – 未经授权:由于服务器configuration,访问被拒绝 。
基本上,您的客户端需要一种types的身份validation,并且服务器未configuration为提供身份validation方法,因此身份validation在尝试协商身份validation方法的初始客户端 – 服务器通信期间失败。
根据我的经验,这通常是一个Kerberos相关的问题,如果没有其他原因,默认设置似乎包括非function状态下的Kerberos身份validation…所以这是我首先看的地方。 特别是,请确保如果IIS在域服务帐户下运行,则会注册一个SPN(服务主体名称) ,您的描述使我相信您不知道。
当然,这也可能是一个授权问题 ,有几个KB ,甚至是一个非Kerberos身份validation问题 。
有趣的时候,是吧? 而且,如果没有这样做对你来说, 这是一个好东西, 我可以追溯到2003年的日子,但仍然适用于基本的身份validation故障排除。 如果没有别的,它应该帮助你缩小问题的范围,或者也许解决方法是强制每个人都使用一个更简单的authentication方法。
这个问题的最终解决scheme是在IE设置中find的。 当我们在每次访问时检查选项以检查存储页面的较新版本时,这导致问题消失。 重新启用时,问题再次出现。