分布式(群集)实施中的WSO2 API Manager自定义

时间:2016-09-14 09:40:17

标签: wso2 wso2carbon wso2-am

我们在独立(DEV环境)实施中实施了少量WSO2 API Manager(v1.10.0)自定义。

但是,现在我要在分布式UAT和PRD环境中实现这一点,我不确定每个这些自定义/配置应该在哪些服务器上进行。

我们有以下分布式架构:

  • Gateway(x2)
  • 发布者&存储(在单个服务器上)
  • 密钥管理器(x2)

这遵循the online documentation的设计:

API Manager distributed architecture diagram

标准分布式安装已全部配置并按预期工作。

我们实施的定制如下:

1。配置自定义登录页面

默认情况下,WSO2使用自己的登录页面进行用户身份验证。下面的屏幕截图显示了这方面的一个例子:

WSO2 default login screen

这是通过更新`/ repository / deployment / server / webapps / authenticationendpoint'文件夹的内容来完成的。

2。配置为跳过用户同意

默认情况下,系统会提示用户同意Web应用程序访问其OpenID配置文件信息:

enter image description here

这是通过将<OpenIDConnect><SkipUserConsent>值从false更改为true打开\repostiory\conf\identity\identity.xml文件

来完成的

3。配置用户帐户恢复和通知

这是通过以下方式完成的:

  1. 在WSO2管理界面中安装“帐户恢复和凭据管理”功能
  2. IdentityMgtEventListener文件
  3. 中将true设置为\repository\conf\carbon.xml
  4. 更新/repository\conf\identity\identity-mgt.properties文件
  5. 中的通知和useraccount设置
  6. 取消注释<transportSender name="mailto"...>文件中的\repository\conf\axis2\axis2.xml
  7. (使用在线文档中的Password Recovery说明)

    4。配置自定义用户存储管理器

    不幸的是,WSO2目前不支持通过它公开的用户存储管理API重命名现有用户存储中的用户。

    为了使我们的应用程序能够执行此操作,我们已实现了此处标识的自定义JDBC用户管理器存储:http://tharindue.blogspot.co.uk/2015/05/a-workaround-for-renaming-username-of.html

    5。创建声明

    此处我们删除了默认的Username声明,并按照此处的说明添加了其他两个声明(重命名用户名和用户ID):http://soasecurity.org/2012/05/02/claim-management-with-wso2-identity-server/

    这是问题......

    应该对哪些(分布式)服务器或组件进行哪些自定义?

    我的初步调查显示以下内容,但我想在开始更新配置之前确认:

    1。配置自定义登录页面 - 网关服务器密钥管理器服务器

    2。配置为跳过用户同意 - 网关服务器密钥管理器服务器

    第3。配置用户帐户恢复和通知 - 密钥管理器服务器

    4。配置自定义用户存储管理器 - 密钥管理器服务器

    5。创建声明 - 密钥管理器服务器

    这些是正确的吗?还有什么我需要注意的吗?

    非常感谢提前!乔恩

1 个答案:

答案 0 :(得分:1)

据我了解,您正在尝试将API Manager用作身份提供程序。尽管API管理器能够执行某些身份提供程序任务,因为它具有Identity Server的某些功能,但您不应将其用作身份服务器。相反,您应该使用单独的身份服务器,并为其执行所有自定义。

您还可以使用相同的身份服务器作为密钥管理器节点。 IS作为keymanager文档可以找到here。您只需在Identity Server中安装一些API Manager功能并进行一些配置更改。还有一个预先打包的IS作为Keymanager包你可以直接使用。这是现在推荐的方法。请参阅文档here