2015-09-30 49 views
0

我一直在研究此主題一段時間,但沒有多少運氣。如何使用Web應用程序作爲客戶端向SAML依賴方進行身份驗證

場景: 1.使用標準表單身份驗證登錄Web應用程序。 2.從Web應用程序登錄到SAML依賴方。

問題: 我想過使用iFrame對SAML依賴方執行身份驗證。這種方法的根本問題是,在完成SAML身份驗證流程之後,我需要將持久身份驗證令牌傳回給我的Web應用程序客戶端(此令牌用於隨後將我的Web應用程序訪問到SAML依賴方)。

。有人可以評論這是否正確(安全明智)嗎?

。有沒有其他方法可以將基於Web的客戶端認證爲配置爲SAML依賴方的系統?

由於提前,

柴門

+0

如果我理解你的問題,你正在描述IDP啓動的SSO:http://saml.xml.org/wiki/idp-initiated-single-sign-on-post-binding。我假設這是因爲您編寫了「使用標準表單身份驗證登錄到Web應用程序」 - 這樣,應用程序聽起來就像是IDP。但是,您的問題讓我感到困惑:您可能需要檢查「依賴方」的定義。 – judielaine

回答

0

你問的問題是一個根本性的問題,聯合會。就SAML而言,有一個身份提供商(IdP)和一個服務提供商。 IdP有責任對用戶進行身份驗證,並向SP Web應用程序發出SAML聲明。在你的問題中,這聽起來像你的應用程序是想要向SP Web應用程序發出SAML斷言的IdP(我將你的SAML依賴方解釋爲SP Web應用程序)。請記住,SAML斷言專注於一次性用於身份驗證的SP Web應用程序,其中SAML斷言可以包含用於AuthZ的屬性。

另一種體系結構將集成第三方SAML IdP,以便您的應用程序是SP,而另一個應用程序是SP。兩個SP Web應用程序都將使用IdP進行身份驗證並接收SAML斷言。再次,這是關於AuthN和SAML斷言中信息的一次性使用。

另一種體系結構是利用來自IdP服務器的OpenID Connect(OIDC)。主要區別在於令牌可以長期居住並用於後續的安全API事務。

關於安全性,所有這些協議在爲其各自的體系結構正確集成時都具有內置的安全性。

0

問題是,據我所知:他的應用程序是一個消費者想要訪問一個安全的資源,需要基於SAML的身份驗證。

您可以在後臺自動進行身份驗證,但是您必須在兩側(身份提供商和服務提供商)處理CORS。 您的方法更簡單,因爲它是用戶啓動的操作,因此CORS不是必需的。 給你的問題:聽起來像你的令牌是標題的一部分,作爲特殊名稱的特殊標題。在你的情況下更好的方法(如果可能的話):將此標記存儲在Cookie中。在你的方法中,cookie應該在不同的幀之間共享。您的應用程序可以在訪問資源時發送cookie。但請注意:使用Javascript & XMLHTTPREQUEST需要設置「withCredentials」。

相關問題