问题标签 [api-manager]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
137 浏览

wso2 - API Manager 中的多租户

案例:我想通过 API Manager 以多租户的方式暴露 API。希望我能解释我想要什么。所以实际上一个 API 密钥属于一个特定的租户。

示例:我想为 GetCustomers API 公开。因为我只想返回该租户的客户,如果没有租户作为参数(GetCustomers(租户)),我怎么能做到这一点?

  1. 是否可以让租户获得 API 密钥?
  2. 还有另一种方法可以实现这一目标吗?

问候罗杰

0 投票
1 回答
676 浏览

wso2 - WSO2 API 管理器 v1.8.0

我有一个简单的用例,将 API 使用者的路径参数映射到后端 API 端点。我已经做了很多研究,但还没有找到关于如何做到这一点的具体答案。据我了解,如果不使用uri-template,就无法完成路径参数的映射。现在的问题是 API Manager 不支持来自 API Publisher 用户界面的 uri-template,您必须改用 url-mapping。WSO2 开发人员的一篇博客说,您可以转到单个突触配置并手动将其更改为 uri-template。但实际情况是,对 synapde 配置所做的更新以某种方式触发了数据库更新,否则会从发布者 UI 发生,最终结果是它不起作用。有人可以提供有关如何映射路径参数的方法吗?仅供参考 - 查询参数映射对我有用,因为它不需要 uri-template 并且可以使用 url-mapping 本身来实现。

0 投票
1 回答
1278 浏览

wso2 - 通过 WSO2 API 管理器调用我的 api 时出错。意外的错误

我已经发布了一个 api,然后在它的环境中为该 api 订阅了一个应用程序。我已经生成了访问令牌。

我尝试使用邮递员通过 wso2 api gw 访问我的 api:

并且该请求从未响应,在日志中我可以看到以下异常,您能否给我提示一下此异常的含义以及我应该如何尝试成功调用我的 api?

谢谢

0 投票
1 回答
201 浏览

wso2 - 用户 Dao 访问 WSO2 API Manager 中的内部用户存储

我正在尝试为 WSO2 API 管理器(v. 1.8.0)编写一个自定义的用户注册工作流扩展。每当用户在 api 商店注册时,我想向管理员发送一封通知电子邮件。在电子邮件中,我想包含有关用户的基本数据 - 电子邮件、名字、姓氏等......我很难找出我可以使用哪个类来检索这些数据。

0 投票
2 回答
455 浏览

api - 在 wso2 api manager 中持续部署

我是否可以在 wso2 api manager 中选择持续部署。例如 - 我在测试区域配置了一个 API,一旦 API 测试完成,我需要自动将 API 提升到 UAT 区域,而不是在 UAT 区域再次登录配置相同的 API。

0 投票
1 回答
1240 浏览

amazon-web-services - 如何在 AWS 上的 ELB 后面部署 API 管理器并保留 X-Forwarded 标头?

我在 AWS 上部署了一些 RESTfull API,主要是在 Elasticbeanstalk 上。

我的公司正在逐渐采用微服务架构,因此,我想开始以更专业和自动化的方式管理这些 API。因此,我想采用某种 API Manager 来提供标准功能,例如路由和发现。

另外,我希望使用这样的 API Manager 将我的一些 API 公开到 Internet。管理器将仅通过 SSL 暴露于 Internet,并且在将外部消费者的请求路由到内部 API 之前,应该需要某种形式的身份验证。对于我的用例,每个请求的 Authorization 标头中的简单 API 密钥就足够了。

我目前正在考虑将两种产品作为 API 管理器:WSO2 和 Kong。前者是托管在 Github 上的一个有点新的开源项目。

在我正在考虑的所有部署场景中,API 管理器都必须部署在 AWS EC2 实例上。此外,它们必须至少部署在两个不同的可用区和弹性负载均衡器 (ELB) 后面,以便为托管 API 提供高可用性。

我的大多数 API 都遵守 HATEOAS 约束。因此,他们的许多 JSON 响应都包含指向其他资源的链接,这些资源必须根据原始请求动态构建。

例如:

如果用户通过公开的 API Manager 从 Internet 发送请求,则 URL 如下所示: https ://apimanager.mycompany.com/accounts/123

因此,用户应该会收到一个 JSON 响应,其中包含一个 Account 资源,其中包含一个指向订阅资源的链接。链接 URL 应基于原始请求的协议、主机和端口,因此应如下所示:https://apimanager.mycompany.com/subscriptions/789

为了满足上面提到的动态链接生成要求,我的 API 依赖于 X-Forwarded-Proto、X-Forwarded-Host 和 X-Forwarded-Port HTTP 标头。这些应该包含协议(http 或 https)、主机名和消费者在原始请求中使用的端口,不管请求通过了多少代理。

但是,我注意到当请求通过 ELB 时,X-Forwarded-Proto 和 X-Forwarded-Port 标头更改为引用请求通过的最后一个 ELB 的值,而不是原始请求中的值。

例如:如果原始请求通过 HTTPS 到达 API Manager,Manager 通过 HTTP 将请求转发到内部 API;因此,当请求到达第二个 ELB 时,ELB 会将 X-Forwarded-Proto 标头更改为“http”。结果,X-Forwarded-Proto 标头的原始“https”值丢失。因此,API 无法在 URL 中使用“https”协议建立正确的链接。

显然,ELB 不能配置为以任何其他方式运行。我在 AWS 的文档中找不到任何可能影响此行为的设置。

此外,似乎没有比 AWS 的 ELB 更好的替代品了。如果我选择使用 HAProxy 等其他产品,或者通过 API Manager 本身进行负载平衡,我将不得不将其安装在常规 EC2 实例上,因此会产生单点故障。

我包括一个非正式的图表,以更好地表达我的观点。

图表

此外,我找不到任何有关 WSO2 或 Kong 部署方案的相关讨论,这些讨论将以任何方式解决这些问题。我不清楚这些产品应该如何与 AWS 的 ELB 相关联。

非常欢迎有类似环境的其他人发表评论。

谢谢你。

0 投票
1 回答
1081 浏览

wso2 - 如何在 WSO2 API Manager 生成的 JWT 中获取自定义声明

我想通过 APIM 生成的 JWT 将所有声明包含在我们的辅助用户存储中。我们正在为当前任务使用隐式身份验证,因此用户必须向 IS 进行身份验证。我们将联合身份验证与 JIT 配置一起使用。

我已启用:

并设置:

并启用:

但是生成的 JWT 不包括用户的数据,只包括标准网关声明,包括最终用户。

我已经确认用户是在数据库中创建的,并且用户的声明存储在表 UM_USER_ATTRIBUTE 中。我确实注意到在主用户存储(非联合)中,UM_USER_ATTRIBUTE 为空,而 UM_CLAIM 已填充。会不会是 JIT 配置将数据放在了 ClaimsManager 未检查的表中?

如何让用户的声明(如电子邮件)显示在 JWT 中?

是 5.0.0 APIM 1.8.0

0 投票
1 回答
63 浏览

java - 在 WSO2 中给出端口号和传递的参数

我正在尝试学习 WSO2,但一直停留在一个小步骤,我认为这应该很容易做到。在创建新的 api 时,我需要提供生产端点。我想提供的是 url 以及端口。所以它应该是这样的: Production Endpoint : http://localhost:9000 但是这给出了一个无效的 url。我如何指定端口。请帮忙。我试图通过文档但找不到任何东西。我正在通过http://myip:9443/publisher上的管理 UI 执行这些操作。请指教

编辑:为清楚起见添加图像在此处输入图像描述

0 投票
1 回答
566 浏览

curl - WSO2 API Manager (1.9.0) - Set Expire Date/Validity Time Via cURL

When using the WSO2 AM via the Store it is possible to set a Validity Time, so that the access token expire time can be increased/decreased.

Is it possible to set the Validity Time via cURL when generating a new token?

E.g. Normal token generation command:

curl -k -d "grant_type=client_credentials" -H "Authorization: Basic userToken, Content-Type: application/x-www-form-urlencoded" localhost:8243/token

{"scope":"am_application_scope default","token_type":"bearer","expires_in":1367,"access_token":"1234456677890"}

Possible token generation command with setting validity time:

curl -k -d "grant_type=client_credentials" -d "validity_time=99999" -H "Authorization: Basic userToken, Content-Type: application/x-www-form-urlencoded" localhost:8243/token

{"scope":"am_application_scope default","token_type":"bearer","expires_in":99999,"access_token":"1234456677890"}

What is the correct command to use for setting this? The reason for this, is because I would like the users of the API Manager be able to set the expire date via a Java API client that we offer.

0 投票
2 回答
66 浏览

wso2 - WSO2 P.PaaS:访问 APIM

我是 WSO2 的新手。我已经安装了 P.PaaS。如何访问 APIM?请给我一个例子好吗?

使用电话。请原谅简洁。