2016-03-01 51 views
0

我們正在使用spring-security和PingOne作爲IdP來實施SAML。 我們遇到了一個問題,即當用戶使用SSO登錄到應用程序,然後在IdP上被禁用/刪除時,他的會話沒有終止,因此他可以繼續使用該應用程序。 我覆蓋了SAMLAuthenticationProvider身份驗證方法,所以我在ExpiringUsernameAuthenticationToken上設置了到期日期(類似於IdP在斷言中給我們SessionNotOnOrAfter值),但問題在於用戶剛剛從應用程序註銷,未重新進行身份驗證。SAML重新驗證用戶會話

是否有任何方法檢查用戶是否仍然在IdP端有活動會話,並且只有在他的IdP會話無效時纔將其註銷?

+0

SAML2包含一個註銷機制,可用於協調IDP和SP上的會話生存期,但我不知道PingOne或spring-security是否支持它。 –

+0

@AndersAbel據我所知,Single Logout從SP側起作用,當用戶啓動SL時,它將您從IdP和SP註銷。 – user6004782

+0

可以從SP和IDP啓動單次註銷。 –

回答

0

對於這種情況SAML提供AuthnRequest的'IsPassive'屬性。如果設置爲'true',則可用於檢查用戶是否仍然與IdP有效會話。這些'被動'AuthnRequests可以定期觸發(例如應用程序端會話超時)。

+0

如果Spring Security SAML擴展將提供這種OOTB,那將非常酷。我認爲目前情況並非如此。 –