2009-04-30 121 views
36

如何SAML SSO通常實現的?如何實現SAML SSO

我已閱讀this(n.b.廢止)關於在Google Apps中使用SAML以及SAML上的維基百科條目。

關於與包含SAMLRequest和SAMLResponse的細節形式響應的維基百科條目會談。這是否意味着用戶必須實際提交表單才能繼續進行單點登錄?

關於使用重定向,這似乎更無縫我在谷歌入門講座。但是,它也談論瞭如何使用表單作爲用戶必須提交的響應(雖然它的確談到了使用JavaScript來自動提交表單)。

這是這樣做的標準方式嗎?使用重定向和JavaScript提交表單?

有誰知道如何去Windows域和J2EE web應用程序之間實現SSO任何其他好的資源。該Web應用程序位於單獨的網絡/域上。我的客戶想要使用CA Siteminder(與SAML)。

回答

25

這樣做的方式是,在對用戶進行身份驗證後,SAML身份提供商(IdP)向包含SAML響應的瀏覽器呈現表單 - 表單的「操作」(即目標)是服務提供商(SP) 。在HTML中,有一個提交表單的JavaScript onLoad事件,所以最終效果是用戶自動從IdP轉移到SP,SAML響應。

唯一的一次,一個用戶必須點擊任何提交表單,如果他們已禁用JavaScript。在這種情況下,SAML實施通常會提供一個消息,其中包含一個按鈕,用於按<noscript>標籤。

有關更多詳細信息,請參閱this article I wrote a few years ago - 但請注意,'Lightbulb'現在已經過時 - 對於PHP SAML,請參閱simpleSAMLphp

您的客戶希望使用CA SiteMinder - 開放源代碼OpenAM(以前稱爲OpenSSO)很容易做到這一點。

+4

OpenSSO的是死的,我相信它已經轉世爲OpenAM – 2012-04-19 19:42:38

+0

你是正確的,@TobyHobson。我編輯了我的答案。 – metadaddy 2012-04-23 19:43:54

0

如果SiteMinder的是依賴方,那麼你就需要編寫自定義代理採取SAML神器並創建一個SM-會話。否則,您將需要購買具有此功能的產品。