问题标签 [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 回答
100 浏览

azure - Generics in APIM policy breaks Terraform

The following APIM policy cannot be deployed via Terraform:

With the following error: The 'JObject' start tag on line 15 position 26 does not match the end tag of 'value'. Line 18, position 4.

This is due to the content.As<JObject>.

The policy is defined as in the Terraform documentation.

Same error when using xml_content = "${file("xxx")}".

How to proceed, besides finding a workaround to not use content.As<JObject>?

0 投票
1 回答
177 浏览

wso2 - JWT Enrichment with external rest service

我正在使用 WSO2,我需要为每个请求丰富 JWT 令牌。浓缩需要通过外部休息服务来完成。

我们正在使用 WSO2 2.2 我试图通过扩展类“org.wso2.carbon.apimgt.keymgt.token.JWTGenerator”并使用 java HTTPClient 库与其余服务一起工作来丰富 JWT。但是在 apim 产品中使用 HTTPClient 代码似乎并不自然。

这是我可以使用的代码,但似乎 wso2 应该能够为我提供一种更好的方式来作为客户端连接到 api。

0 投票
1 回答
923 浏览

azure - 如何创建 Powershell 脚本来创建 Azure API 管理资源

我试图弄清楚如何从脚本创建 API 管理资源和 API 管理 API。我相信有两种选择:

.

  1. 使用 AzureRm.ApiManagement 中的 powershell Management api

    为此,我相信要使用的两个命令是:

    新AzureRmapiManagement

    新AzureRmapiManagementApi

.

  1. 使用管理 REST API

    为此,我相信创建您需要使用第一个选项的资源,然后可以将以下方法与 Invoke-RestMethod powershell 命令一起使用:

    PUT https://management.azure.com/subscriptions/ {subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ApiManagement/service/{serviceName}/apis/{apiId}?api-version=2019-01-01

.

我只想传递新的管理 api 资源的名称和 devlab 的名称以在其下创建它并创建它,然后在其下创建一个与产品无关(或与无限制的默认产品关联)的 api。 ..哪个更容易)。

任何人都可以帮助使用 powershell 脚本来执行此操作吗?

谢谢。

0 投票
1 回答
57 浏览

azure - Azure Api 规则不适用于使用具有身份验证基本和身份验证证书的默认助手

我正在添加一个入站处理策略规则以应用所有 Azure API 服务方法。使用策略向导,我找到了我在下一行中编写的基本身份验证。

那么,为什么当我使用基本身份验证从 Postman 调用时它不适用。总是响应是 200-OK,如果我更改用户和密码,它就不会了。总是响应没问题。我检查来自客户端的标头请求,它添加了正确的身份验证用户:密码

0 投票
2 回答
117 浏览

azure - 在逻辑应用中限制 APIM IP 时无法通过 APIM 访问逻辑应用

问题陈述:

我有一个通过 APIM 公开的逻辑应用程序[我想要这种方式,因为这是我的设计方法],我只想允许特定的入站 IP 地址(在我的情况下为 APIM IP)访问我的逻辑应用程序。

我已将 apim 中的 IP 限制如下,并且按预期工作。

现在,我已经在我的逻辑应用程序中允许了特定的 ip(apim ip) 并从我的本地机器上发出了请求,逻辑应用程序提示我一个错误。 在此处输入图像描述

当我在逻辑应用程序中添加本地机器的 IP 时,它会按预期工作。

所以,我认为限制 APIM 中的 ips 有什么意义,因为我还需要允许逻辑应用程序中的所有 IPs?

谁能帮助/详细说明我做错了什么。

0 投票
1 回答
3384 浏览

azure - azure apim 中的 JWT 验证失败错误

我目前正在尝试使用以下文档实施 Oauth2.0 来保护 API

https://docs.microsoft.com/en-us/azure/api-management/api-management-howto-protect-backend-with-aad

目前使用 azure apim 提供的 DEMO CONFERENCE API 来测试实现。

目前在开发人员门户中的测试期间收到错误:

“消息”:“JWT 验证失败:声明值不匹配:aud=xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxx..”

通过解码和匹配将传递的令牌与声明值进行比较。

我有如下的 jwt 令牌验证策略

0 投票
2 回答
86 浏览

wso2 - 如何在具有 apache 前端的分布式设置中正确设置 APIM 存储?

WSO2 APIM 2.6.0 的场景:
1 个用于 API Publisher 的 VM -> 前端:https://mgt.mydomain(网关工作人员的经理)
1 个用于 API 存储的 VM -> 前端:https://store.mydomain
1 台 VM 用于流量管理器 -> 前端:https://trafficmanager.mydomain
2 台 VM 用于网关集群 -> LB:https://api.mydomain (网关工作人员)
2 台 VM 用于 IS 作为 KM 集群 -> LB:https ://security.mydomain

商店中的 carbon.xml:

商店中的 apimanager.xml:

发布我的测试 API 后,当我尝试测试它时,商店使用它作为请求 URI:

请求 URL:https://store.mydimain/testAPI/v1.0.0/info
来自 API 商店的示例请求:
curl -k -X GET " https://store.mydomain/testAPI/v1.0.0/info " -H "接受:应用程序/json" -H "授权:承载 1fcf7e3f-8292-3110-8cff-27226caa59a8"

直接向网关 LB 发出的请求是可以的。
示例请求:
curl -k -X GET " https://api.mydomain/testAPI/v1.0.0/info " -H "accept: application/json" -H "Authorization: Bearer 1fcf7e3f-8292-3110-8cff-27226caa59a8 "
响应:{"version":"1.0.0","nome":"test-api"}

附加信息:在网关工作人员之间
安装了一个 NFS 在 IS-KM 之间安装了一个 NFS
发布者应该是网关管理器

附加信息 可以观察到,在发布 API 后,APIM 发布者和 APIM 商店中的概述不会'不显示端点:

在此处输入图像描述

但是我在 Publisher Server 中的 apimanager.xml 看起来正确配置如下:

PUBLISHER 中的 apimanager.xml:

新更新

对于 VirtualServer api.mydomain:443 insideapache 我的配置是:

0 投票
1 回答
134 浏览

azure-api-management - 从响应对象中提取非字符串值

APIM我想OAuth在调用后端之前获取一个令牌并将其存储在APIM缓存中。

我设法得到OAuth令牌。

我希望将我的令牌存储在缓存中,为此我需要一段时间。从响应正文中提取持续时间是我的问题。

首先,我提取令牌和持续时间以将它们保存在变量中。然后变量用于在缓存中存储一​​个值。

提取“expires_in”的整数值时失败。

响应对象:

提取数据并放入变量:

存储在缓存中:

提取“expires_in”会导致对象引用未设置为对象的实例。

0 投票
1 回答
42 浏览

azure - 未检索 APIM 服务的指标

我正在使用 Rest API 来检索 APIM 服务的指标。

我能够检索前两天的指标,但突然我无法检索它们。检索指标是否有任何限制?

0 投票
1 回答
74 浏览

azure - 在 AAD 凭据下记录 API 调用

我有一堆 API 在 APIM 后面运行在 Azure 中,这些 API 需要我的 AAD 进行 OIDC 身份验证,一切都按预期工作,但我想知道监视/记录哪些用户调用哪个 API 的最佳方法是什么。这些信息在 APIM 的 OIDC 服务生成的 JWT 中可用,所以我希望它是可能的。

默认的 APIM 服务分析记录一些基本信息,例如,没有做任何特殊的事情,每次调用都记录在用户“匿名”下,并带有一个随机生成的(持久的?)用户 ID。

我可以创建一堆 APIM 用户并将相应的订阅密钥分发给我的 AAD 用户,并在发出请求时将密钥添加到他们的标题中。有了这个,电话就会记录在他们的名字下,这正是我想要的。问题在于它似乎不是特别安全。是什么阻止了订阅密钥的共享和/或 AAD 用户凭据与 APIM 订阅密钥之间的不匹配?

这样做的正确方法是什么?可以从 APIM/AAD 中完成,还是我需要使用事件中心之类的东西?

编辑:

我找到了一个可行的解决方案。通过启用 Application Insights,以下入站 API 策略将 JWT 令牌的名称字段存储为跟踪。

如果 JWT 不包含字段名称并拒绝 API 调用(可能是错误请求),也许我还应该添加一个策略。

无论如何,这听起来像是一种方法,但不是正确的解决方案,看起来不像是一个独特的问题。