2013-08-28 111 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端应用程序