2013-08-28 158 views
2

我對cross domain sso有要求。所以,我選擇OpenAMSAML。我有兩個應用程序託管在不同的服務器和主機上,我需要實現SSO。 現在我讀了OpenAM with SAML,但可以得到有關設置的核心思想。 LDAP被用作用戶數據存儲。 現在我有一些想法,並且想驗證它是否符合我的要求。使用OpenAM和SAML 2.0跨域sso

  1. ,因爲我有需要SSO實施的兩個應用程序(AppAAppB)。我需要兩個配置爲服務提供商的OpenAM?並應該部署在不同的tomcat容器中? service providers是否應該部署在AppAAppB
  2. 我需要另一個單獨的tomcat容器,用於identity provider OpenAM?
  3. sp應該註冊到idpidp應該在Circle of trust之內註冊到sp

我還必須做其他事嗎?我還需要爲每個idpsp配置單獨的LDAP?無論如何,在我的情況下,什麼是理想的設置?

回答

1

您需要一個IdP,您的應用必須實施SP。如果您的應用程序是基於Java的,則可以利用OpenAM的Fedlet或使用Spring Security SAML擴展(像魅力一樣工作)。

還有一個PHP SAML SP,甚至是Apache HTTP服務器SAML模塊...

或者你可以使用OpenIG作爲反向代理(但它是一個Java Web應用程序),這也實現了SAML SP。

-Bernhard

+0

實際上,這兩種應用是基於java的應用程序(Liferay的)。實際上,liferay通過openAM支持開箱即用,但不能跨域(liferay無法在跨域共享cookie)。所以,我試圖用SAML來開放OpenAM。我對openAM的知識很少。你能詳細解釋一下嗎?如果我使用OpenAM的Fedlet,我不必實現SP? – nebula

+0

OpenAM的Fedlet是爲SP(ServiceProvider)端實現SAML協議的庫。您的每個應用程序(AppA和AppB)都必須使用Fedlet執行SP引發的SSO和SLO。應使用LDAP(OpenDJ)在服務器端環境中安裝IdP(OpenAm)。有關安裝和設置的詳細信息可以在ForgeRock的wiki網站上找到。 – Rastko

0

還有一個可能的解決方案中,你可以使用OpenAM開箱的是使用OpenAM身份聯合:

  1. 使用標準OpenAM聯合身份驗證設置(與IDP和SP)如本文中所述:http://fczaja.blogspot.com/2012/06/idp-initiated-sso-and-identity.html
  2. 您需要爲AppA擁有AppA和SP的IDP,反之亦然。 IDP將連接到您的用戶商店。
  3. 在SP端使用類似OpenDS的東西創建一個虛擬用戶存儲。
  4. 將所有用戶從IDP導入到SP(使用計劃的每日批處理作業)
  5. 根據一個或多個用戶屬性實施自動聯合。
  6. 在SP側使用OpenAM授權功能給接入SP端應用程序