首页 文章

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

提问于
浏览
1

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

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

我们有以下分布式架构:

  • 网关(x2)

  • Publisher&Store(在单个服务器上)

  • 密钥管理器(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.配置用户帐户恢复和通知

这是通过:

  • 在WSO2管理界面中安装“帐户恢复和凭据管理”功能

  • \repository\conf\carbon.xml 文件中将 IdentityMgtEventListener 设置为 true

  • 更新 /repository\conf\identity\identity-mgt.properties 文件中的通知和useraccount设置

  • 取消注释 \repository\conf\axis2\axis2.xml 文件中的 <transportSender name="mailto"...>

(使用在线文档中的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. Configure Custom Login Pages - 网关服务器密钥管理器服务器

2. Configure to Skip User Consent - 网关服务器密钥管理器服务器

3. Configuring User Account Recovery and Notifications - 密钥管理器服务器

4. Configuring A Custom User Store Manager - 密钥管理器服务器

5. Creating Claims - 密钥管理器服务器

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

提前谢谢了!乔恩

1 回答

  • 1

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

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

相关问题