AD FS 故障排除 - Fiddler - WS 联合身份验证

AD FS 和 Windows Server 联合关系图

步骤 1 和步骤 2

这是我们跟踪的开始。 在此帧中,我们将看到以下内容:

Fiddler 跟踪的开始

请求:

  • HTTP GET 到我们的信赖方 (https://sql1.contoso.com/SampApp)

响应:

  • 响应是 HTTP 302 (重定向)。 响应头中的传输数据显示要重定向到的位置 (https://sts.contoso.com/adfs/ls)
  • 重定向 URL 包含 wa=wsignin 1.0,它告诉我们 RP 应用程序已为我们生成 WS-Federation 登录请求,并将其发送到 AD FS 的 /adfs/ls/ 终结点。 这称为重定向绑定。

响应头中的传输数据

步骤 3 和步骤 4

继续 Fiddler 跟踪

请求:

  • 向我们的 AD FS 服务器(sts.contoso.com)发起 HTTP GET 请求。

响应:

  • 响应是提示输入凭据。 这表示我们使用的是表单身份验证
  • 单击响应中的 Web 视图,即可看到凭据提示。

显示凭据提示的响应的 Web 视图的屏幕截图。

步骤 5 和 6

凭证输入提示屏幕的 Web 视图选项卡

请求:

  • 使用我们的用户名和密码的 HTTP POST。
  • 我们提供了凭据。 通过查看请求中的原始数据,可以看到凭据

响应:

  • 找到响应并创建并返回 MSIAuth 加密 Cookie。 这用于验证客户端生成的 SAML 断言。 这也称为“身份验证 Cookie”,仅在 AD FS 是 Idp 时存在。

步骤 7 和 8

Fiddler 跟踪的屏幕截图,显示了 HTTP GET 请求和对该请求的响应。

请求:

  • 完成身份验证后,我们会对 AD FS 服务器执行另一个 HTTP GET 并显示身份验证令牌

响应:

  • 响应是 HTTP OK,这意味着 AD FS 已根据提供的凭据对用户进行身份验证
  • 此外,我们向客户端返回了 3 个 Cookie。
    • MSISAuthenticated 包含对客户端进行身份验证时的 base64 编码时间戳值。
    • AD FS 无限循环检测机制使用 MSISLoopDetectionCookie 来停止最终在联合身份验证服务器无限重定向循环中的客户端。 Cookie 数据是 Base64 编码的时间戳。
    • MSISSignout 用于跟踪 IDP 和 SSO 会话访问的所有 RP. 调用 WS 联合身份验证注销时,将使用此 cookie。 可以使用 base64 解码器查看此 Cookie 的内容。

步骤 9 和 10

Fiddler 跟踪的屏幕截图,其中显示了 HTTP Post 请求和该请求的响应。

请求:

  • HTTP POST

响应:

  • 响应为“已找到”

步骤 11 和 12

Fiddler 跟踪的最终确定

请求:

  • HTTP GET

响应:

  • 响应正常

后续步骤