【问题标题】:Recommendation for integrating WSO2 API Manager, Identity Server and Shibboleth集成 WSO2 API Manager、Identity Server 和 Shibboleth 的建议
【发布时间】:2014-07-19 10:48:14
【问题描述】:

目前推荐的设置 WSO2 API 管理器以针对 Shibboleth IDP 使用 SSO 的方法是什么?

我们的组织有一个围绕 Shibboleth 的 IDP 构建的现有 SSO 基础架构,我们希望将其集成到我们的 API Manager 安装中。理想用例:

  • 用户导航到 API Manager Store。
  • 用户被重定向到 Shibboleth IDP 登录页面。
  • 如果不存在,则会创建一个 API Manager 帐户并为其分配订阅者角色。
  • 用户返回到 API Manager 并登录。“Signed-in-as:”呈现合理的用户名(即不是 GUID)。

我知道 API 管理器包含一个 SAML2 身份验证器组件,但它的功能有限,特别是它不处理加密断言,使用特定属性进行用户名/显示名称和自动用户创建。

我知道我们可以编写自定义身份验证器,但是我们宁愿避免创建另一个需要维护且没有社区支持的代码库。如果无法确定更简单的解决方案,那么我们很可能会这样做。

我目前正在调查的是将 API 管理器的所有用户管理委托给 WSO2 身份服务器。它会在返回 AM 之前将身份验证委托给 Shibboleth 和自动配置用户。 IS似乎可以解决上述所有问题。

  1. 首先,这是一个合适的策略吗?如果是,建议如何配置 AM 和 IS?
  2. 应该 IS 和 AM 都指向同一个 JDBC 数据库,还是应该 AM 指向 IS 的 LDAP 服务器?
  3. 关于指向 IS 的 AM 身份验证器,我应该使用 SAML 还是 OAuth,还是有更好/更简单的方法?

Shibboleth IDP v2.4 – 首选属性推送的 SAML2。
WSO2 API Manager v1.6.0
WSO2 身份服务器 v5.0.0

【问题讨论】:

    标签: wso2 wso2is wso2-am


    【解决方案1】:

    以下是我的研究结果,感兴趣的人可以参考:

    1) 这是一个合适的策略。 Identity Server 5.0 版本中的新功能主要围绕这个场景。并且 AM 的 1.7 版本还包括支持此设置的功能。最后,我从开发人员那里听说他们打算在接下来的几个版本中进一步推动这种集成。

    2) 从 AM 1.6 开始,有一个错误导致几乎需要共享同一个主 JDBC 用户存储。从 1.7 开始,它应该更加开放。
    WSO2 的人员似乎在 LDAP 和 JDBC 之间没有偏好(除了默认的 H2 DB 不是为生产环境设计的),但是如果您为此选择安装 DB 或 Open LDAP,LDAP 服务器似乎更适合这个选择。

    3) 当目标是向用户展示 UN/PW 屏幕时,最好使用 SAML 在两者之间进行通信。当目标是使用预先发布的令牌登录时,则使用 OAuth。 API Manager 和 IS 在幕后使用这两种协议,但这个特定问题的答案似乎是 SAML。 未来 WSO2 计划扩展其产品的“Trusted IDP”功能,这将简化此流程(并在幕后使用 SAML)。

    【讨论】:

    • 因为有人刚刚将此标记为有用,所以让我更新一下。我们已经推进了 API Manager -> Identity Server -> Shibboleth 的策略。这个策略效果很好。 API Manager 通过 SAML 与 IS 对话并从共享的 LDAP 中读取用户数据。 IS 收集返回(加密)的断言,并在翻译后创建一个用户供 API 使用。
    • 在旧金山举行的 WSO2 Con 2014 上,我还与 Prabath Siriwardena(WSO2 安全总监)进行了交谈,并参加了他的一些演讲。他们希望进一步推动这一想法,现在正在将 IS 推广为能够在身份消费者和提供者之间进行转换的“身份服务总线”。我们正在研究让其他不理解 shibboleth 但会说话的产品,例如,oauth 使用 IS 作为翻译器。
    • 随着人们似乎不断发现这一点,还有一个更新。我们已经使用这个设置有一段时间了。流程是: 1) 用户转到 APIM 2) 用户被重定向到 IS 3) 用户被重定向到 shibbolet IDP 4) 用户登录并向 IS 提供 saml 断言 5) Is 使用 SSO 详细信息创建帐户声明,然后向 APIM 发送新的 SAML 断言 6) APIM 将用户登录到新创建(或更新)的 IS/APIM 帐户。使用这种方法,我们可以完全集成 SSO,并且用户的详细信息甚至包含在 JWT 中。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-10-05
    相关资源
    最近更新 更多