将 Fiddler 与 SAML 和 SharePoint 结合使用以通过三个身份验证提示

原文发布于 2012 年 12 月 3 日(星期一)

虽然 Eric Lawrence 在他的一篇 Fiddler 博客文章中谈及了本主题,但除非您知道要查找哪些内容,否则您将很难进行跟踪,为此,我打算在这里再谈一谈 SharePoint 发生的转变。我们经常跟用户说,当他们遇到与其网站相关的问题时,可使用 Fiddler 来了解所发生的情况。尤其是,通过使用 SAML 身份验证,可以帮助了解身份验证问题。问题在于,我们在 2010 版本中对处理身份验证绑定的方式所做的更改导致无法完成该任务。因此,如果您运行的是 Fiddler 并尝试使用 SAML 对 SharePoint 网站进行身份验证,系统仅会三次提示您输入您的凭据,随后将在 IIS 中生成一个错误页面。

若要解决此问题,您需要向 Fiddler 中添加一些脚本。为此,请打开 Fiddler(我使用的是 4.4.1.1 版 - 由于版本的更改相当频繁,因此您的 UI 可能略有不同)。了解规则...自定义规则菜单;向下浏览脚本直到您找到 OnPeekAtResponseHeaders 函数。在那里,您可以添加用于使您通过此身份验证问题的少量代码。首先,从您添加的代码开始:

if (oSession.isHTTPS && oSession.responseCode == 401)
{
// To use creds other than your Windows login credentials,
// set X-AutoAuth to "domain\\username:password"
oSession["X-AutoAuth"] = "default";
oSession["ui-backcolor"] = "pink";
}

此处要重点注意的是,所需执行的操作是尝试对身份验证请求使用您的 Windows 凭据。还要将身份验证提示的背景色设置为粉红色 Fiddler 窗口,但您可以显著更改或删除此部分。如果您在进行身份验证时需要使用一组不同的凭据,则可以插入 domain\\username 而不是“默认值”,如脚本中所述。虽然不能达到最佳效果,但至少对 ADFS 起作用,并且比完全没有任何 Fiddler 跟踪要有用得多。

若要了解有关此问题的详细信息,您可以访问 Eric 所撰写的有关此问题的文章,网址为 https://blogs.msdn.com/b/fiddler/archive/2011/09/04/fiddler-http-401-authentication-workaround-to-support-channel-binding-tokens-removing-endless-prompts.aspx

这是一篇本地化的博客文章。请访问 Using Fiddler With SAML and SharePoint to Get Past the Three Authentication Prompts 以查看原文