2016-04-26 59 views
1

我有一個Grails應用程序,使用Spring SAML和WSO2 IS作爲IdP。SP會話超時後將用戶重定向到登錄頁面

會話超時UI刷新頁面並將用戶重定向到登錄頁面。這樣做是爲了防止敏感信息被他人看到,以防用戶長時間打開頁面。

但是在我們實現SSO之後,這種機制不再起作用 - 會話超時後頁面重新加載並且IDP自動重新驗證它。

據我所知,有兩個會議:IdP的和SP的。當SP會話失效時,IDP仍然活着。

會話超時後是否可以將用戶重定向到SSO登錄頁面? 是否有一些最佳實踐如何使用SSO處理會話超時?

+0

什麼是您使用的身份服務器版本?您是否使用Identity Server管理控制檯在身份服務器上創建了SP? –

+0

@ChamilaWijayarathna我正在使用V4.6.0。是的,SP使用IS管理控制檯 –

回答

0

它看起來像它的IMPOSIBLE同步使用SSO的會議,所以我決定來設置SP會話和IDP會話相同的值。這不是完美的解決方案,但至少其行爲與預期相似

1

爲了讓這種情況發揮作用,您的SP必須發出註銷請求。 Spring SAML支持單一和本地註銷。在本地註銷的情況下,其他SP會話都不受影響,也不會影響IDP,只是當前SP會話被註銷。在Single Logout情況下,IDP指示所有SP終止會話,然後終止IDP會話。無論哪種情況,當會話超時時都必須有來自SP的請求。

的更多信息,請訪問:http://docs.spring.io/autorepo/docs/spring-security-saml/1.0.x-SNAPSHOT/reference/htmlsingle/#configuration-logout

+0

在「註冊新服務提供商」頁面上註冊,但如果將有多個SP?這並不奇怪,會話超時後用戶未通過身份驗證,應重定向到SSO登錄頁面,但在其他SP中,此用戶已通過身份驗證?這是否違背了SSO的想法? –

+0

@TarasKohut查看response.assertion.authnStatement.sessionNotOnOfAfter,但這完全取決於您的SP實現。從SP的角度來看,您可能需要專門告訴IdP執行註銷。如果這是全局註銷,那麼IdP會通知其他SP,他們也需要終止其會話。 – Nikolai

+0

我試過你的解決方案,但實際上在SP請求本地註銷用戶重定向到登錄頁面後,並且由於SSO會話還活着,SP會重新進行身份驗證。看起來像這樣是不可能的,直到全局會話存在之前,沒有自動登錄的情況下被重定向到登錄頁面。或者我錯過了什麼? –

相關問題