讓我們假設我們有一個用戶正在使用Single sign-on
訪問三種不同的服務。 在點擊註銷時,可以識別和終止當前Sp的會話。使用SAML在單次註銷中終止會話
在此,IdP
有責任將用戶從其他兩項服務中註銷。 我的問題是如何獲得和終止其餘兩項服務的會話?
讓我們假設我們有一個用戶正在使用Single sign-on
訪問三種不同的服務。 在點擊註銷時,可以識別和終止當前Sp的會話。使用SAML在單次註銷中終止會話
在此,IdP
有責任將用戶從其他兩項服務中註銷。 我的問題是如何獲得和終止其餘兩項服務的會話?
Idp向其他兩個SP發送LogoutRequest和要註銷的用戶的sessionIndex。 SP然後負責終止會議。
在SSO期間,IDP將SAML斷言發送到包含AuthnStatement的SP。此AuthnStatement的屬性之一是SessionIndex,它用IDP標識用戶的會話。
在SLO期間,SP發送包含SessionIndex的SAML註銷請求,該請求標識IDP必須終止的用戶會話(IDP)。然後,IDP檢索參與當前用戶會話的SP列表。 IDP向這些SP中的每一個發送SAML註銷請求。
爲了做到這一點,IDP需要跟蹤參與當前用戶會話的SP(即在當前用戶會話期間接收到由IDP發出的SAML聲明的SP)。
正確,但用戶有多個活動sessions.and註銷應該終止所有sessions.stefans答案的竅門,但我想知道是否有更好的方式可能 – Shurmajee 2013-03-10 15:29:48
但是,此會話索引必須在SSO時給予IdP,並且將爲每個(SP +用戶)組合保留一個數據庫。有沒有更具擴展性的方法? – Shurmajee 2013-02-18 08:44:22
會議索引在登錄時從IDP提供給SP。在SLO中,SP發送用戶的會話索引。據我所知,SP需要跟蹤每個用戶的(SAML會話索引,Java會話)。而且IDP需要跟蹤每個SP的uid和會話索引。據我所知,沒有其他辦法。 – 2013-02-18 09:06:59
@Shurmajee - 出於好奇,你怎麼沒有接受這個答案?我與SAML作戰,這個答案證明是有用的,因爲它幫助我輕鬆實現SLO。 – Mjh 2016-03-02 14:48:30