【问题标题】:Federation using OAuth as protocol and OpenAM as SP使用 OAuth 作为协议和 OpenAM 作为 SP 的联合
【发布时间】:2016-06-29 17:55:14
【问题描述】:

我想知道是否可以使用 OpenAM 进行 OpenID 连接联合。我在这个主题中没有找到任何东西,在我看来,OpenAM 只允许对 SAML、Liberty ID-FF 和 WS-Federation 进行联合。

那么是否可以像在 WSO2 中那样使 OpenID Connect 与 OpenAM 联合?如果有,怎么做?

这是一张说明我的需求的图片。您可以在下面看到两家公司的架构,其中每家公司都有自己的 IdP 和一些 SP。用红色表示,您将看到我想要进行的通信:

  1. 公司 1 的客户尝试访问公司 2 的 SP 供应
  2. 供应检查他是否有会话,如果没有(是这种情况) 将他重定向到公司的 idp2
  3. 公司 1 的 IdP 联合对 IdP 的身份验证 公司 2
  4. 身份验证已在 IdP 1 和客户端之间进行
  5. 向 IdP 2 提供一个令牌,证明身份验证成功。 IdP2 然后为客户端创建一个 Session
  6. 同样的事情发生在 IdP2 和 Supply 之间
  7. 请求的资源最终返回给客户端

感谢您的回复

【问题讨论】:

  • “OAuth2 联合”是什么意思?你是在说 'tools.ietf.org/html/draft-ietf-oauth-saml2-bearer' 吗?如果是,那么这可行,但请注意bugster.forgerock.org/jira/browse/OPENAM-8567
  • 例如假设有两家公司。每个人都提供一项服务,但要求用户进行身份验证。因此,如果 A 公司的用户想要使用 B 公司的服务,他必须能够从 A 公司的 IdP 而不是 B 公司的 IdP 进行身份验证。所以我的问题是:我们可以使用 OpenID 做到这一点在 OpenAM 中连接还是我们必须使用 SAML?
  • 如果它真的是一个“服务”,你可以使用 OIDC。如果“B 公司的服务”是一个 Web 应用程序,SAML 可能会更容易。
  • 是的,但我有义务使用 OpenID Connect,所以我正在尝试制作 POC(概念证明),以便我知道我应该为此使用哪种实现案子。那么我们该如何做这个联邦呢?
  • 使用 OIDC 时不需要“联合”。

标签: oauth oauth-2.0 openid openam federation


【解决方案1】:

首先让我澄清一下我想要做什么:双重联合(SP 和 IDP2 之间的联合,IDP2 和 IDP1 之间的联合)。这仍然是一种罕见的情况,您希望您的客户在 IDP 中都有会话,并且您希望为您的服务提供商抽象 SSO 的复杂性。

因为这是一种罕见的情况,并且协议未涵盖,OpenAM 尚未实现此功能。您将不得不增加供应 (SP) 的复杂性,因此它将有两个客户端 ID(每个 IDP 一个),并且客户端将需要选择他的 IDP 或将客户端 ID 注入 SP 的 url。

一些注意事项:

在使用双联盟时,您需要确保企业 1 的客户不会访问应该为企业 2 私有的服务提供者。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-03-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多