【问题标题】:Cross domain sso with OpenAM with SAML 2.0使用 OpenAM 和 SAML 2.0 的跨域 sso
【发布时间】:2013-08-28 10:40:17
【问题描述】:

我需要cross domain sso。所以,我选择了OpenAMSAML。我有两个应用程序托管在不同的服务器和主机中,我需要为其实现SSO。 现在我读到了OpenAM with SAML,但可以获得有关设置的核心思想。 LDAP 用作用户数据存储。 现在我有一些想法并想验证它是否符合我的要求。

  1. 因为我有两个应用程序(AppAAppB)需要 SSO 实现。我需要将两个 OpenAM 配置为服务提供者吗?并且应该部署在不同的tomcat容器中?每个service providers 是否应该部署在AppAAppB 中?
  2. 我需要另一个单独的 tomcat 容器用于 identity provider OpenAM?
  3. sp 应该注册到idpidp 应该注册到sp 在同一个Circle of trust 内?

我还需要做什么吗?我是否必须再次为每个 idpsp 配置单独的 LDAP ?无论如何,就我而言,理想的设置是什么?

【问题讨论】:

    标签: single-sign-on saml-2.0 openam opensso


    【解决方案1】:

    您需要一个 IdP,您的应用必须实施 SP。如果您的应用是基于 Java 的,您可以利用 OpenAM 的 Fedlet 或使用 Spring Security SAML 扩展(就像一个魅力一样工作)。

    还有一个 PHP SAML SP,甚至还有一个 Apache http 服务器 SAML 模块...

    或者您可以将 OpenIG 用作反向代理(但它是一个 Java Web 应用程序),它还实现了 SAML SP。

    -伯恩哈德

    【讨论】:

    • 实际上,这两个应用程序都是基于 java 的应用程序(Liferay)。实际上 liferay 支持开箱即用的 sso 与 openAM 但不支持跨域(liferay 无法跨域共享 cookie)。所以,我试图用 SAML 来 OpenAM。我对 openAM 知之甚少。你能详细解释一下吗。如果我使用 OpenAM 的 Fedlet,我不必实施 SP?
    • OpenAM 的 Fedlet 是为 SP(服务提供者)端实现 SAML 协议的库。您的每个应用程序(AppA 和 AppB)都必须使用 Fedlet 来执行 SP 发起的 SSO 和 SLO。 IdP (OpenAm) 应安装在带有 LDAP (OpenDJ) 的服务器端环境中。可以在 ForgeRock 的 wiki 站点上找到安装和设置的详细信息。
    【解决方案2】:

    另一种开箱即用的 OpenAM 解决方案是使用 OpenAM 身份联合:

    1. 使用标准 OpenAM 身份联合设置(使用 IDP 和 SP),如本文所述:http://fczaja.blogspot.com/2012/06/idp-initiated-sso-and-identity.html
    2. 您需要为 AppA 提供 IDP,为 AppB 提供 SP,反之亦然。 IDP 将连接到您的用户存储。
    3. 在 SP 方面,使用 OpenDS 之类的东西创建一个虚拟用户存储。
    4. 将所有用户从 IDP 导入 SP(使用计划的每日批处理作业)
    5. 根据一个或多个用户属性实现自动联合。
    6. 在 SP 端使用 OpenAM 授权功能来授予对 SP 端应用程序的访问权限

    【讨论】:

      猜你喜欢
      • 2014-07-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多