2012-08-02 46 views
0

我有一個關於SAML2的基本問題。典型的流程是用戶向受保護的SP請求資源。 SP檢查用戶是否有安全上下文(比如cookie?),如果沒有找到安全上下文,它會構建AuthRequest,然後將瀏覽器重定向到IdP。現在,IdP首先檢查用戶是否具有現有的安全上下文。 IdP如何做到這一點? IdP是否也使用cookie來實現此目的?IdP如何識別用戶是否有安全上下文

回答

2

是的。對於SAML Web SSO配置文件,會話幾乎總是作爲cookie保存在IDP和SP的瀏覽器中。但是,如何管理這個問題沒有規定。 IDP可以選擇不保持活動會話並提示用戶登錄每個SSO事務。

Ian

1

@Ian - Great Answer。但是,如果IDP沒有維護會話cookie [黑白瀏覽器和身份提供商(IDP)],那麼您錯失了單點登錄(SSO)的顯着優勢。在以下情況中將描述將丟失的SSO用戶體驗(UX)功能:

0)假設IDP已在Google Apps和Salesforce中註冊。
1)打開瀏覽器。注意:SAML是基於瀏覽器的。您需要一個SAML工作的瀏覽器。
2)嘗試轉到Google Apps; (您沒有現有會話cookie [黑白瀏覽器和Google Apps]),然後他們將您重定向到IDP。
3)您使用有效的IDP憑據登錄。
4)IDP然後在瀏覽器中存儲會話cookie [黑白瀏覽器和IDP]。 (這是@Ian提到的步驟可以被IDP忽略) 5)IDP然後將您重定向到Google Apps(通過HTTP POST),SAML令牌嵌入到POST中。您現在在Google Apps中。 (現在,您的瀏覽器中存儲有會話Cookie [黑白瀏覽器和Google Apps]) 5)嘗試轉到Salesforce。
6)Salesforce看到您沒有活動的會話cookie [黑白瀏覽器和Salesforce],因此他們將您重定向到IDP。

*這是我的加入用戶體驗的點(UX)*
7)IDP將尋找一個會話cookie [B/W瀏覽器和IDP],如果IDP被配置爲不商店維護一個你必須輸入你的單點登錄(SSO)又名IDP證書再次。

關於步驟7的討論:爲每個單獨的服務輸入SSO憑證,額外步驟乘以您正在使用的服務數量。我認爲實施的主要目的是隻輸入一次證書並獲得一切權限(拋開安全問題)。但是,如果IDP沒有存儲會話cookie [黑白瀏覽器和IDP],您仍然只使用一組憑據(而不是每個服務的單獨憑據),因此生活仍然更容易。

@Ajava - 你似乎對cookie的使用方式感到困惑。我希望您可以按照上述步驟更好地瞭解Cookie如何與SAML一起使用。
這裏也是一個很好的鏈接,我發現解釋了cookies:http://lifehacker.com/5461114/fact-and-fiction-the-truth-about-browser-cookies

+1

您不需要瀏覽器就可以利用SAML。 WebSSO恰好是最常用的SAML配置文件。您可以使用增強型客戶端或代理(ECP)配置文件從CLI輕鬆使用它。 「...與HTTP一起使用,以及能夠直接聯繫委託人的身份提供者的客戶端,而不需要服務提供者的發現和重定向,就像瀏覽器的情況一樣。「 https://wiki.oasis-open.org/security/SAML2EnhancedClientProfile – 2014-05-13 06:06:16

相關問題