我正在使用 Microsoft 在线的 WS-Federation 协议对 SharePoint Online 进行 ADFS 身份验证。
该过程中真正令人困惑的部分是 WS-Federation 协议的“wasignin”操作,这是一个 HTTP 表单发布到https://login.microsoftonline.com/login.srf。
由于wctx
参数内编码的参数很容易令人困惑。
这wctx
是表单参数的编码字符串。这些参数是 WS-Federation 实现的内部参数(在本例中为微软)。微软的 wctx 似乎包含两个参数:
estsredirect
= 某个整数。即2
estsrequest
= 一些 base64 编码的字符串
但是它们能做什么呢?我找不到任何关于它们的记录。
看https://blogs.technet.microsoft.com/askpfeplat/2014/11/02/adfs-deep-dive-comparing-ws-fed-saml-and-oauth/有关 ADFS 握手期间 WS-Federation 的更多信息。
之前打开过https://security.stackexchange.com/questions/180629/during-microsoft-ws-federation-protocol-help-describe-the-parameters-given-to-t但被告知在这里重新打开它,因为它实际上不是一个安全问题,更多的是一个微软的实施问题。
答案1
它存储了联邦的背景。
有一个 cmdlet:
设置 AdfsWebConfig -ContextCookieEnabled
将其存储为 cookie 以持久保存,并将其添加到字符串中。
例如想象一个场景:
应用程序——>ADFS——>一些其他IDP
另一个 IDP 需要根据哪个应用程序发出了调用来做出决定。这就是存储在上下文中的内容。它会沿着链传递。