我正在使用 Microsoft Online 的 WS-Federation 協定對 SharePoint Online 進行 ADFS 驗證。
過程中一個真正令人困惑的部分是 WS-Federation 協定的「wasignin」操作,它是一個 HTTP 表單發佈到https://login.microsoftonline.com/login.srf。
由於wctx
參數中編碼的參數,這很令人困惑。
這wctx
是表單參數的編碼字串。在本例中,這些參數是 WS-Federation 實作的內部參數 microsoft。微軟的wctx似乎包含兩個參數:
estsredirect
= 某個整數。 IE2
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但被告知要在此處重新開啟它,因為這並不是真正的安全問題,更多的是 Microsoft 實作問題。
答案1
它儲存聯合的上下文。
有一個cmdlet:
設定 AdfsWebConfig -ContextCookieEnabled
它將它儲存為 cookie 以保留它並將其添加到字串中。
例如想像一個場景:
應用程式 --> ADFS --> 一些其他 IDP
另一個 IDP 需要根據發出呼叫的應用程式做出決定。這就是上下文中儲存的內容。它沿著鏈條傳遞。