我正在为使用Windows / NTLM / WIA /任何身份验证的Intranet站点开发ASP.NET应用程序。该应用程序托管在Windows 2k8服务器上,但可以通过另一台2k8计算机上的IIs7通过反向代理访问。
身份验证在FireFox,Chrome和Safari中运行良好,但在IE8中失败。如果我绕过代理并直接访问应用程序服务器,那么它工作正常,因此它与代理有关。
在3台机器中的任何一台上,事件查看器中都没有任何内容可以指示可能发生的情况。
如果使用IE8进行连接,它会提示您输入凭据,而不是自动传递它们,是的,我已经设置了对域信任以上的显式信任,但是仍然存在错误,代理返回401错误。
任何想法从哪里开始排除故障?
答案 0 :(得分:2)
事实证明,IIS 7反向代理不支持Kerberos身份验证,因此您必须在后端服务器上禁用它,以便它们使用NTLM。
不幸的是,在2k8上没有简单的方法可以做到这一点,你必须搞乱注册表。但是,在2k8 R2中,IIS 7中有用于管理身份验证提供程序的GUI选项。
答案 1 :(得分:1)
在客户端计算机上运行Fiddler将是开始的地方,以查看从代理返回的auth标头与具有直接连接的标头不同。
您需要检查在其工作的情况下是否正在使用NTLMv1,NTLMv2或Kerberos。 Win7上的IE8现在默认阻止NTLMv1,这可能与问题有关吗?