我使用saml一路通過ADFS將Auth0 SSO用於Spring安全應用程序時已設置好。因此,它看起來像這樣:ADFS中的單一註銷第二個請求失敗
Auth0 ----> ADFS ----> SpringSecurity App.
我Auth0的控制,但它模擬的第三方將與我們的ADFS服務器集成。
這工作正常。
要做註銷,我最低限度希望銷燬SpringSecurity應用程序和ADFS應用程序上的會話。當我第一次呼叫註銷時,SAML註銷請求會傳遞給ADFS。然後,ADFS將註銷請求傳遞給Auth0,並在該處結束。這破壞了會話。但是,如果在沒有關閉瀏覽器的情況下再次登錄I SSO,然後註銷,則ADFS會拒絕該登出請求,並顯示urn:oasis:names:tc:SAML:2.0:status:Requester
,這意味着它不喜歡我的請求。
我已經能夠縮小到事實,有一個SAMLLogout
cookie,與我的ADFS服務器域的設置。當註銷反彈到Auth0時,這似乎會被設置,但不會被刪除。當該cookie存在時調用註銷會導致錯誤。當我刪除一個cookie時,我可以成功註銷(因爲它破壞了ADFS會話並向Auth0發送註銷請求)。該Cookie有效期爲Session
,因此關閉和打開瀏覽器也可以。
我可以發佈令牌請求和響應,但我不認爲它與令牌本身有關。它們都被正確簽名,並且在執行註銷時ADFS不報告任何錯誤。
我不一定需要ADFS來調用Auth0(或任何IdP)來銷燬該會話,我只需要它來銷燬它自己的會話。
對不起,我沒有字面意思是一些調用「摧毀」或「未設置」,我的意思是更多的內置功能的Spring Security和ADFS – Ronnie76er