簡體   English   中英

SAML2 SSO斷言使用者

[英]SAML2 SSO Assertion Consumer

我有一個客戶想要使用基於SAML2斷言的方法來實現SSO。 客戶將是身份提供商(IDP),而我的應用程序將實際上是服務提供商(SP)。

過去,我已經實現了IDP為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應用程序。

任何指針將非常有用。

謝謝李

取決於您的要求。 OpenAM feldlet或Shibboleth可能是最好的方法,因為您不必自己做太多的編碼。

OpenSAML是用於處理SAML消息的非常底層的工具包。 如果不需要,我不建議這樣做。

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

AudienceURI的定義非常灰色。 基本上,您向他們發送一個標識符,他們在其消息中包含該標識符,並確認該標識符與您給他們的標識符相同。 我自己不明白這和Destination之間的區別...

我為他們要求您而感到驚訝。 進行第一次信息交換的標准方法是使用SAML元數據文檔。

如您所知,OpenAM還提供了FedLet,它是輕量級的SAML2.0 SP實現。 如果您想自己做所有事情,則必須自己構建SAML2.0 SP。

如果您想弄亂Spring,還可以使用Spring Security SAML2擴展..' http: //static.springsource.org/spring-security/site/extensions/saml/index.html'

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

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM