【问题标题】:WSO2 API Manager Customisations in a Distributed (Clustered) Implementation分布式(集群)实现中的 WSO2 API Manager 自定义
【发布时间】:2016-09-14 09:40:17
【问题描述】:

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

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

我们有以下分布式架构:

  • 网关 (x2)
  • 发布者和商店(在单个服务器上)
  • 密钥管理器 (x2)

这遵循了the online documentation的这个设计:

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

我们实现的自定义如下:

1。配置自定义登录页面

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

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


2。配置为跳过用户同意

默认情况下,系统会提示用户同意 Web 应用程序访问其 OpenID 个人资料信息:

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


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

这是由以下人员完成的:

  1. 在 WSO2 管理界面中安装“帐户恢复和凭据管理”功能
  2. \repository\conf\carbon.xml 文件中将IdentityMgtEventListener 设置为true
  3. 更新/repository\conf\identity\identity-mgt.properties 文件中的通知和用户帐户设置
  4. 取消注释\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.配置自定义登录页面 - 网关服务器密钥管理器服务器

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

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

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

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

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

提前非常感谢!乔恩

【问题讨论】:

  • in 1,你说的是哪个登录名?是网关管理器的商店、发布者或管理控制台吗?您是否使用身份服务器作为密钥管理器?
  • 感谢@Bhathiya 的回复。这不是任何 WSO2 API 管理器组件(商店、发布者或管理员)的登录名,而是我的应用程序用户在登录到我的站点时看到的登录页面。
  • 您是否使用身份服务器作为密钥管理器?
  • 没有。我们将 API Manager 用于密钥管理器。
  • 您的第一个屏幕截图是身份服务器。你有单独的 IS 吗?

标签: wso2 wso2carbon wso2-am


【解决方案1】:

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

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

【讨论】:

  • 嗨@Bhathiya。感谢您的回答。我知道使用 WSO2 身份服务器作为密钥管理器可能是更合适的方法。但是,我遵循了官方的Clustering API Manager 1.10.0 文档,所以我认为这应该可以使用 API Manager。如果我可以在我的独立服务器上进行这些定制,那么我肯定可以在分布式设置上进行吗?您认为完全可以进行这些定制吗?
  • 是的,独立完成的自定义也可以移动到分布式设置中。
  • 再次感谢您的回复。很高兴听到定制也可以移动。我希望从我的问题中找出每个自定义需要在哪个组件(网关、发布者、商店或密钥管理器)上完成。
  • 由于所有身份管理的东西都应该放在一个地方,所以最好的地方是密钥管理器。
  • 不,您不应该将密钥管理器放在 DMZ 中,因为它需要连接到用户存储。您可以改为这样做。 xacmlinfo.org/2015/10/06/…
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多