401 - 仅在使用Windows身份验证的IE7中未经授权。

时间:2011-08-25 10:43:38

标签: iis active-directory internet-explorer-7 windows-authentication http-status-code-401

我创建了一个使用Windows身份验证的Intranet站点

在Chrome中我可以立即访问该站点,在F​​F中它需要Active Directory登录。 但是对于IE7,我收到以下错误:

401 - 未经授权:由于凭据无效,访问被拒绝。 您无权使用您提供的凭据查看此目录或页面。

我不确定为什么它在其他浏览器中可以,但不是IE? 任何帮助表示赞赏。

由于

4 个答案:

答案 0 :(得分:25)

解决方案:

IE正在使用Kerberos而不是像Chrome和Firefox那样回归NTLM。您必须按照以下步骤在IIS7.5中强制执行NTLM身份验证:

  1. 选择您的网站。
  2. 双击身份验证。
  3. 选择“Windows身份验证”(确保已启用)。
  4. 点击右栏中的“提供商...”。
  5. 选择NTLM并单击“上移”。
  6. 链接:windows authentication not working in ie7

答案 1 :(得分:0)

我不熟悉IIS,但在过去的几周里,我在将AD登录集成到Web应用程序方面拥有丰富的实践经验。这是非常合乎逻辑的 - 每个Microsoft产品都可以更好地与其他产品集成,只要您使用Active Directory进行Windows登录身份验证方法,Internet Explorer(应该对所有版本有效,而不仅仅是7个)会自动传递您的AD登录凭据

每个其他浏览器都需要配置为执行此操作,要求您手动键入它们或根本不支持它。这就解释了为什么Firefox要求您输入用户名和密码。在Opera下,您很可能会收到相同的错误消息。

我对Chrome的猜测是它是您选择的默认浏览器,并且在某个时间点,您已输入登录信用卡并且该会话仍然有效。

所有这些都意味着(如果我的假设是正确的)您需要使用不同的AD帐户登录此应用程序而不是Windows,后者(由IE自动传递)未经授权。

答案 2 :(得分:0)

首先查看here并获取更详细的错误说明。我有一些疯狂的CRM问题,这一切都归结为IIS中的设置顺序,问题的答案最终变得如此简单; 进入iis然后验证设置 单击Windows身份验证并选择高级 确保内核模式已打开 点击提供商并确保谈判高于NTLM。

答案 3 :(得分:0)

听起来您的环境设置不正确,无法进行Kerberos身份验证。有许多事情可能导致Kerberos身份验证失败。例如。服务器或客户端上的时钟偏差,Web服务器上缺少SPN等

通常,当您配置使用Windows身份验证时,您要求使用SPNEGO,这意味着尽可能使用Kerberos,如果Kerberos失败则返回NTLM。但是,post指出这不再是真的。在某些情况下,IE7在Kerberos停止,但不会退回到NTLM。

您可以尝试按照建议的post禁用“启用集成Windows身份验证”。它看起来很奇怪,但它实际上只是关闭了SPNEGO,你仍然会使用NTLM。

我猜Firefox和Chrome之所以有效,是因为他们使用的是NTLM而不是Kerberos。根据我的经验,非Microsoft浏览器不会开箱即用Kerberos。您需要进行一些配置工作才能实现。例如,在FireFox中,您需要设置network.negotiate-auth.trusted-uris参数。见here

一旦确认IE7的NTLM仍然正常工作。然后,您可以发布另一个问题,询问如何修复IIS的Kerberos身份验证问题。