有关集成WSO2 API Manager,Identity Server和Shibboleth的建议

时间:2014-05-29 19:43:33

标签: wso2 wso2is wso2-am

建议WSO2 API管理器针对Shibboleth IDP使用SSO的当前推荐方法是什么?

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

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

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

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

我目前正在调查的是将API Manager的所有用户管理委派给WSO2 Identity Server。在返回AM之前,它会将身份验证委派给Shibboleth和自动配置用户。 IS似乎可以解决上面提到的所有问题。

  1. 首先,这是一个合适的策略吗?如果是这样,建议如何配置AM和IS?
  2. IS和AM是否都指向同一个JDBC数据库,或者AM是否指向IS的LDAP服务器?
  3. 关于指向IS的AM身份验证器,我应该使用SAML还是OAuth,还是更好/更简单?
  4. Shibboleth IDP v2.4 - 首选具有属性推送功能的SAML2 WSO2 API Manager v1.6.0
    WSO2 Identity Server v5.0.0

1 个答案:

答案 0 :(得分:5)

以下是我的研究结果,对于任何有兴趣的人:

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

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

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