问题标签 [apim]

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 回答
144 浏览

wso2 - 从自定义 DNS 访问 Wso2 Api Manager

我在我的 linux 上有一个 wso2 API manager 3.0.0 设置。默认情况下,发布者、开发工具和管理控制台 url 指向 localhost。为了通过浏览器访问它,我必须用我的服务器 IP替换localhost并且它可以工作。

现在我已经创建了一个 DNS 并希望通过 DNS 访问它。它不起作用。

你能告诉我实现这一目标的确切步骤吗?我应该更改哪些文件?

请注意,id 宁可更改应用程序配置文件而不是更改服务器的主机文件。

0 投票
1 回答
64 浏览

azure - 如何通过上传 API swagger 文件将 API 导入 Azure APIM

在此处输入图像描述

这里应该上传什么样的文件?

0 投票
1 回答
503 浏览

asp.net-web-api - Azure API 管理是否可以用作也包含 API 的 ASP.NET MVC 网站的传递?

我有一个 ASP.NET MVC 应用程序 - 网站和 API 控制器。我想使用 Azure API 管理来管理这些 API,但保留相同的 URL,以便我们的消费者无缝连接。我们在此 Web 应用程序的应用程序服务上设置了自定义域,当前用于提供站点和 API(例如网站:xyz.com、API:xyz.com/api1、xyz.com/api2 等)。 )。我们还使用 AAD 进行身份验证。并将重定向 URI 设置到自定义域 (xyz.com)。目前一切都很好。

在我们配置 API 管理以公开我们的 API 并可能将其用作传递之后,就会出现问题。为了确保在引入 API 管理后 URL 保持不变,我们将自定义域设置为 API 管理实例本身,并将其从应用程序中删除。服务。这就是我们当前设置的样子 -->

用户点击 xyz.com,请求按如下方式进行 ->流量管理器-> APIM(xyz.com) ->应用服务(xxx.azurewebsites.net)

在上述最后一点之后,AAD 身份验证。应该启动并在成功验证后获得访问令牌。它应该重定向用户并且页面应该加载。但事实并非如此。相反,我们得到一个空白页面,如果我们刷新它,那么只有这样它才会继续进行身份验证。并加载页面。

我们尝试将重定向 URI 设置为自定义域 (xyz.com) 以及 Azure 生成的基本应用服务名称 (xxx.azurewebsites.net)。

直接点击 API url(例如 xyz.com/api1)可以正常工作。它通过 APIM 并按预期响应。唯一的问题是该网站未按上述方式加载。

当我们将 APIM 排除在外,并再次将自定义域设置回应用服务时,一切都按预期工作。

我试图弄清楚我们是否以某种方式错误地配置了我们的资产,或者 APIM 是否不支持以这种方式传递网站。这里的任何想法/建议将不胜感激!

0 投票
1 回答
96 浏览

kubernetes - 为什么 WSO2 APIm 在启动时需要 50 多个 DB 连接?

在我们的 WSO2 设置中,每当 APIm 出现时,它都会为 PostGres DB 创建近 50 多个 DB 连接。在稳定阶段,每个 APIm 实例只有 4 个 DB 连接。我想了解为什么它在启动时需要 50 多个连接?这是一个错误还是设计使然?

我们在 kubernetes 设置中运行 WSO2,PostGres 的最大连接限制设置为 100,并且由于这个问题,两个 APIm 实例无法启动。

0 投票
1 回答
77 浏览

azure - Azure APIM - Terraform - 对多个产品使用相同的 AAD 组错误

将同一 Azure AD 组用于两个不同的组时收到错误消息。我得到的错误说该组已经处于 TF 状态并且不能再次使用。希望有人以前见过这个错误。

0 投票
2 回答
493 浏览

azure - Azure API Management Set-Body with Liquid 模板

我有一个 SOAP 服务,在将请求发送到后端服务之前,我需要向 XML Body 添加一个属性。

我的邮递员请求如下:

我传入 text/xml 的 Content-Type 标头

我的 APIM 入站策略如下:

通过在 APIM 中启用请求和响应正文捕获,我可以看到来自请求的值正在输入,而响应输出时没有任何值。

后端请求

任何人都知道为什么源请求中的值没有被映射到后端请求?

0 投票
1 回答
220 浏览

azure - Azure API 管理速率限制(按 Json 正文)

你好,我正在尝试通过 json body 值对 azure api 管理应用速率限制我有这样的规则

但速率限制不起作用。

0 投票
0 回答
103 浏览

apim - 用于多租户 Azure Web 应用程序的 APIM validate-jwt:IDX10205

我在我的 AAD 中注册了一个 Azure Web 应用程序(使用 MSAL 的 Angular SPA)并设置为多租户访问。它访问 Azure Web API。在此配置中运行良好,用户可以使用自己组织的身份登录。

我们将 Web API 放入 Azure API 管理 (APIM) 并设置传入请求以进行 jwt 验证。

这适用于我自己 AD 中的用户,但不适用于他们自己 AD 中的用户。所以我将配置切换到我们的应用注册中的端点的样子:

现在没有任何效果,我得到了错误:

我可以通过添加用户的租户 ID 来解决问题,但我不想在每次新客户注册时都这样做。

是否有有效发行人列表的通配符设置,或完全通过发行人验证的方法?或者客户端是否有一些设置可以解决问题?没有它,我看不到 APIM 如何用于多租户应用程序。

0 投票
1 回答
124 浏览

azure-api-management - 我可以将所需的 QueryString 参数作为 QueryString 参数而不是 APIM 中的模板参数导入吗?

我们正在使用 Swagger/Swashbuckle 生成 OpenApi 定义。然后将此定义导入 Azure API 管理。

在我们标记为必需的获取请求上,我们有一些查询字符串参数。我们的验证确保查询字符串参数存在且有效,否则我们返回 400 错误请求,其中包含哪些参数无效/缺失的详细信息。OpenAPI 定义的相关部分如下。两个查询字符串参数(标记为必填)和一个路径参数(标记为必填)。

OpenAPI 定义提取

我的问题是 OpenApi 定义转换为 APIM 操作的方式。

所需的查询字符串参数作为模板参数添加,并添加到操作 url。这意味着如果未提供它们,APIM 无法将请求与操作匹配,我们会向调用者返回 404,而不是后端将返回的有用的 400。

APIM 操作模板定义

我无法轻松地将空值添加到查询字符串中。我无法在操作的入站策略中执行此操作,因为它与操作不匹配。在全局入站策略中执行此操作意味着我必须自己识别操作(这只是众多操作之一)。同样,虽然我可以在 onerror 策略中返回 400 错误请求,但我不能轻易告诉调用者该请求出了什么问题。

我认为它已内置到导入过程中。当我将模板参数更改为门户中的查询参数并导出时,OpenApi 定义实际上是相同的。当我重新导入导出的模板时,同样的事情发生了。我还尝试通过看起来更有希望的 Wadl,但我无法重新导入该模板。

有没有办法将模板查询字符串参数移动为查询字符串参数?还有其他选择吗?

0 投票
1 回答
496 浏览

azure-api-management - Azure API Manager 上不同 API 密钥的不同调用限制

我了解我们可以通过订阅密钥对 APIM 进行调用限制,如下所示

我有一个用例,我需要为不同的客户通过我现有的 API 之一获利。根据他们选择的计划,他们将能够以不同的限制访问此 API。假设高级客户每分钟可以调用一次我的 api,而我的基本计划的客户可以每 10 分钟调用一次 api。

我正在寻找一种方法来为不同的 API 密钥设置不同的速率限制。基本上是我需要配置的 API 密钥映射和相应的速率限制。因此,不同的不同客户端可以访问相同的 API,并且每个客户端都有自己的速率限制。