2013-02-18 105 views
1

我有一位客戶希望使用基於SAML2斷言的方法實現SSO。客戶將是身份提供商(IDP),我的申請將成爲服務提供商(SP)。SAML2 SSO斷言消費者

在過去,我已經實施了IDO是Oracle Access Manager的SSO解決方案,因此我們提供了idp.xml文件,該文件允許我們使用提供的Fedlet配置我們的SP環境。這很方便地創建了一個相關的WAR文件,在部署時允許我將sp.xml文件分發給導入到其IDP中的客戶。這一切工作正常,我理解的概念,即我們收到最初的請求,fedlet處理這個並將用戶帶到他們認證的IDP,然後他們通過SAML響應傳回給我們的SP,Fedlet允許我們解析並提取標識用戶的一些數據。然後我會按照要求將它們簽署到我們的應用程序中。

然而,目前的要求是沒有使用任何後端框架來提供IDP,他們表示它是定製的。他們給了我IDP URL和一個證書文件,並要求我們提供「AssertionConsumerServiceURL」和「AudienceURI」。

我啓用SSO的應用程序主要是基於Java的。迄今爲止,我的調查使我轉向了Forgerock的OpenAM解決方案以及Shibboleth的OpenSAML。然而,我正在爲第一步努力工作,基本上我在哪裏開始構建一個使用OpenAM/Shibboleth/AnotherFramework連接到第三方IDP的自定義SP應用程序。

任何指針都會非常有用。

感謝, 李

回答

1

取決於你的要求是什麼。 OpenAM feldlet或Shibboleth我可能是最好的方法,因爲你不必自己編寫這麼多的代碼。

OpenSAML是一個非常低級的工具包,用於處理SAML消息。如果不是真的需要,我不會推薦它。

至於他們要求的事情,AssertionConsumerServiceURL是您接收SSO SAML消息的服務端點。

AudienceURI的詮釋頗爲灰暗。基本上你給他們一個標識符,他們將這些包含在他們的消息中,並且驗證這個標識符與你給他們的標識符是一樣的。我自己不明白這和目的地之間的區別...

我有點驚訝,他們問你這個。做第一次信息交換的標準方法是通過SAML元數據文件。

+0

嗨Stefan,是的,我也很驚訝他們已經要求這樣做。在我看來,他們已經推出了自己的IDP解決方案,而不是使用現成的IDP解決方案(例如OpenAM等),並且他們的解決方案沒有IDP元數據。因此,我從他們發送的證書中提取了X509證書,並試圖以他們的名義構建IDP元數據。然後我將它導入OpenAM fedlet並部署到Tomcat。他們試圖運行IDP啓動的SSO,但我收到了「發件人的響應無效」,我現在正在嘗試排除故障。 – 2013-02-20 12:04:00

+1

IPD發起的SSO?不是SP發起的?頒發者的問題在於SAML響應中的頒發者必須與您的IDP的entityID相同。 – 2013-02-20 13:19:08

+0

謝謝。我將IDP元數據中的entityID更新爲他們建議的發行人將要發佈的內容,但之後他們改變了它(不讓我知道!)。所以我更新了配置再次匹配,現在我得到「這個服務提供商不是目標受衆」。 SAMLResponse包含saml:Audience元素,據推測這需要在我的配置某處匹配某些內容,只需查看所有內容即可找出內容。 – 2013-02-20 14:12:05

0

正如你可能知道OpenAM還提供了Fedlet添加,這是一個輕量級的SAML2.0 SP執行。如果你想自己做,你必須自己構建一個SAML2.0 SP。

如果你想更動Spring,你也可以使用Spring Security SAML2擴展..「http://static.springsource.org/spring-security/site/extensions/saml/index.html

+0

嗨,是的,我已經下了OpenAM fedlet路線,但不得不手動創建基於他們的證書的IDP元數據,這是一個痛苦(請參閱我對Stefan上面的回答的評論)。現在試圖排除故障!爲了迴應你關於Spring的其他觀點,不幸的是,這不是Spring項目。 – 2013-02-20 12:06:58

0

爲什麼推出那些沉重的SAML的解決方案?你看過PingOne APS(應用程序提供商服務)還是來自Ping Identity的PingFederate?您可以在不到一天的時間內實施APS,並且您的第一個客戶配置是免費的。包括儀表板報告,針對配置的IDP自助服務功能以及針對您的應用程序的簡單的REST API集成。 [注意:我爲Ping工作。]

+0

謝謝伊恩。我從來沒有使用過你的產品,所以使用PingFederate有什麼優點讓我可以使用OpenAM fedlet? – 2013-02-20 12:08:18

0

您可以設置Spring Security SAML擴展。該擴展創建一個AssertionConsumerServiceURL,如果他們想訪問您的元數據,就像您訪問他們的元數據一樣,他們只需要訪問www.yourwebsite.com/saml/metadata並且他們的SP元數據將被他們下載。