ADFS 2.0 - 如何调试“401 - 未经授权”

时间:2011-07-14 20:29:03

标签: active-directory wif adfs2.0

我使用Active Directory和ADFS 2.0设置了一个测试Server 2008框。我有一个ASP.NET应用程序,它使用WIF来联合身份。 ADFS配置为使用Active Directory进行身份信息。我使用WIF配置客户端应用程序以使用ADFS端点。

当我尝试从浏览器以用户身份加载ASP.NET应用程序时,我被重定向到ADFS端点并提示输入凭据。我尝试使用多个用户帐户登录,甚至重置密码,但凭据似乎永远不正确,并返回401 Unauthorized。我可以使用相同的凭据成功登录其他系统。

我已在详细模式下启用了调试跟踪,并在详细模式下启用了审核,但我找不到任何错误或信息来帮助我找出问题。

如何获得更多信息以缩小问题范围?

更新:

我发现此问题是由我的测试环境引起的。我的开发机器在我们的公司域(acme.com)上。我为测试域控制器(notacme.com)和Web服务器创建了两个2008R2虚拟机。

如果我尝试从acme.com域上的计算机访问该网站,则会发生上述错误。如果我尝试从notacme.com域上的计算机访问该网站,则可以使用。

如何通过acme.com域上的计算机访问网站?

2 个答案:

答案 0 :(得分:5)

显然这是由ADFS内置的扩展保护功能引起的。在尝试解决这个问题时,我让Fiddler正在运行以跟踪请求/响应,但有一次我发誓我将其关闭以进行测试,但它仍然无法正常工作。显然我并没有完全删除Fiddler代理,因为在重新启动IE并且Fiddler没有运行它在IE中工作但发现它仍然无法在Firefox或Chrome中运行。这让我看到了一篇TechNet文章,该文章描述了我在使用Fiddler时所看到的行为。

http://social.technet.microsoft.com/wiki/contents/articles/ad-fs-2-0-continuously-prompted-for-credentials-while-using-fiddler-web-debugger.aspx

答案 1 :(得分:0)

根据我的经验,IIS中的每个登录失败(包括AD FS)都会在“安全”事件日志中记录为“审核失败”事件,其中包含更多详细信息。所以我会在AD FS系统上的事件查看器中搜索,看看这些事件要说些什么。同样在事件查看器中,选中“应用程序和服务日志” - > 'AD FS 2.0' - >管理员事件日志。

看起来您确实试图查看HTTP流量,例如,使用Fiddler。非常好。我认为当不使用Fiddler时也会出现问题?

(在输入正确的用户名和密码后,您是否有重复登录表格的问题?请查看以下答案:ADFS authentication - IE8 works, Chrome fails。)

(我还看到了初始身份验证成功的情况,导致'Audit Success '事件,然后401导致后来的重定向。同样在这种情况下事件登录AD FS系统帮助了。)