azure-api-management 相关问题

Azure API Management是一种云托管服务,可以在任何平台上为现有HTTP API添加许多功能。这包括与安全性,API密钥管理,缓存,文档和许多其他交叉策略相关的功能。有关详细信息,请参阅:http://azure.microsoft.com/apim

使用 C# 从 Azure Api 管理服务为自定义域绑定新证书

我尝试获取 APIM 客户端,我发现通过 apiManagement.Service.HostnameConfigurations 我可以获得一些有关自定义域内内容的信息,有关...的信息

回答 1 投票 0

Azure API 管理服务 - 与服务关联的 IP 未显示在 AMS 概述中

从这个问题开始: Azure API 管理服务中的静态 IP 地址 在 AMS 的概览边栏选项卡中列出了一个 IP 地址。 虚拟 IP (VIP) 地址:公共:xx.xxx.xx.xx 哈...

回答 1 投票 0

如何在 jwt.io 中生成 256 位密钥?

我想在 jwt.io 中生成您的 256 位秘密值 JWT.IO 秘密图像 我想在 API 管理策略中使用该密钥作为颁发者签名密钥。但我不知道如何创建该密钥。 请...

回答 2 投票 0

Azure API 管理策略的源代码控制

因此,在 Azure API 管理中,我创建了一个策略来缓存令牌并在访问实际 API 端点之前进行自我身份验证。我想知道是否有办法把这些政策...

回答 1 投票 0

CORS 策略在 Azure APIM 中未按预期工作

问题看似简单,但即使过了几个小时也无法解决。 每次我创建 APIM 实例并在全局级别的入站策略中启用 CORS 策略时,我都会收到以下错误消息...

回答 2 投票 0

Azure API 管理 Rest api 获取所有订阅密钥并抛出 400 错误代码

我正在尝试获取与任何 APIM 产品关联的所有订阅密钥名称。谁能为我提供该请求的正确查询字符串? 卷曲--位置'https://gb-apim-dev.mana...

回答 1 投票 0

Azure API 管理从 Azure Functions 导入标签

我将 Azure-Functions 导入到 Api-Management。 我喜欢将标签添加到 Api-Management,这样我就可以对我的功能进行分组。 有没有办法在 C# 函数中添加标签,并将其添加到 Azure-Functions,然后我...

回答 1 投票 0

Terraform API 管理 API 政策 - 所有 API

我知道可以通过添加以下两个资源来使用 terraform 创建 API 管理 API 策略:API 管理 API 和 API 管理 API 策略。问题是我想要...

回答 1 投票 0

更改azure api管理服务中的响应正文

我正在使用 json 占位符 api 通过 APIm 测试 GET 请求,并且无法替换我的响应正文。任何帮助表示赞赏! JSON 响应: { “用户ID”:1, “id”:1, ...

回答 2 投票 0

Azure 函数/API:如何创建代理

我正在尝试创建一个代理应用程序来转发我的请求。 我将像这样使用它(适用于某些公共代理): var proxy = new WebProxy { 地址 = new Uri("proxyUrl") }; 变种

回答 2 投票 0

Azure APIM 中的 HTTP 到 HTTPS 重定向

HTTP 到 HTTPS 重定向。我们希望在 APIM 中将所有 HTTP 流量重定向到 HTTPS。我知道我们可以使用策略来重定向,这可以在 API 范围内实现吗?

回答 1 投票 0

Azure API 管理中的脚本策略

我正在从 APIGEE 迁移到 Azure API 管理。我在 APIGEE 中有一些 JavaScript 策略。但我在策略参考索引中没有看到任何类型的脚本策略(https://learn.microsoft.com...

回答 2 投票 0

Azure APIM:受困于身份提供商和 AD B2C 自定义域

问题 我们成功使用 ADB2C 租户作为 Azure API 管理实例的身份提供者。 几个月前,我们借助 Azure Front Door 集成了 B2C 自定义域。我们...

回答 2 投票 0

Microsoft 的 Azure API 管理提取器工具不支持使用 Key Vault 值提取命名值

我正在使用微软的提取工具。最近,我们将一些命名值类型从秘密更改为密钥保管库。然而,当我们生成提取器工具时,它会删除命名值并忽略......

回答 1 投票 0

从 validate-jwt 迁移到 validate-azure-ad-token 策略

我之前已经在很多项目中成功使用了 validate-jwt 策略。我想尝试新的 validate-azure-ad-token 政策。 我更改了其中一项政策: <

回答 2 投票 0

当响应状态代码为 500 时,谁将活动 ID 添加到错误消息中?

我们从邮递员调用了我们的 APIM 端点。 不知何故,请求失败并给出 500 错误以及 Activityid 作为响应。 实际上,当我们从 APIM 进行测试时发生了什么......

回答 2 投票 0

Azure API Manager 上不同 API 密钥的不同调用限制

我了解我们可以通过订阅密钥对 APIM 进行调用限制,如下所示 我了解我们可以通过订阅密钥对 APIM 进行调用限制,如下 <rate-limit-by-key calls="3" renewal-period="15" counter-key="@(context.Subscription.Id)" /> 我有一个用例,我需要为不同的客户将我现有的 API 之一货币化。根据他们选择的计划,他们将能够在不同的限制下访问此 API。假设高级客户可以每分钟调用一次 api,而使用我的基本计划的客户可以每 10 分钟调用一次 api。 我正在寻找一种方法,对不同的 API 密钥有不同的速率限制。基本上是我需要配置的 API 密钥映射和相应的速率限制。因此,不同的客户端可以访问相同的 API,并且每个客户端都有自己的速率限制。 Azure APIM 中没有针对此问题的内置解决方案。 由于某些内部限制,调用将不支持表达式。 rate-limit-by-key calls 我已经通过对产品范围应用速率限制政策来解决这个问题。通过使用 when https://learn.microsoft.com/en-us/azure/api-management/api-management-advanced-policies#choose 所以我的入境政策会是这样的 <choose> <when condition="@(context.Subscription.Name=="abcd")"> <rate-limit-by-key calls="1" renewal-period="15" counter-key="@(context.Subscription.Id)" /> </when> <when condition="@(context.Subscription.Name=="efgh")"> <rate-limit-by-key calls="2" renewal-period="15" counter-key="@(context.Subscription.Id)" /> </when> <otherwise /> </choose> 对于您的用例,更好的选择可能是使用配额而不是速率限制。 “配额通常用于控制较长时间内的呼叫费率。例如,他们可以设置特定订阅者在给定月份内可以拨打的呼叫总数。为了使 API 货币化,还可以为不同的 API 设置不同的配额基于级别的订阅。例如,基本级别订阅每月可能拨打不超过 10,000 次呼叫,但高级级别订阅每月最多可拨打 100,000,000 次呼叫。” 来源:https://learn.microsoft.com/en-us/azure/api-management/api-management-sample-flexible-throtdling#rate-limits-and-quotas APIM文档看起来是通过为API配置多个APIM产品来实现分层访问的。这可以通过执行以下操作在 APIM 中进行配置: 从 API 中删除速率限制策略,因为这不允许不同的层级 将现有速率限制放入基本层产品并将其关联到 API 添加新产品 - 高级级别 需要订阅 需要批准 复制现有基本层产品上的任何自定义策略..任何自定义代码来执行身份验证等操作 将增加的费率限制/配额添加到高级产品的政策中 将高级层产品添加到所需的 API(可以将多个产品分配给一个 API) 为每个需要高级访问权限的 APIM 用户分配高级层产品订阅 让用户在其 API 调用中包含订阅密钥标头。他们的通话将通过高级产品并具有相关的限制和配额

回答 3 投票 0

Azure API 管理速率限制(按 Json 请求正文)

我想根据请求正文中的 mailTo 属性对 Lime 进行评分。 这是 APIM 政策 我想根据请求正文中的 mailTo 属性对 Lime 进行评级。 这是 APIM 政策 <rate-limit-by-key calls="5" renewal-period="10" counter-key="@(context.Request.Body.As<JObject>()["mailTo"].ToString())" /> 这是请求正文 { "mailTo": "[email protected]" } 这对于直接调用后端来说效果很好,但在调用 APIM 时出现以下错误 { "errors": { "": [ "A non-empty request body is required." ] }, "type": "https://tools.ietf.org/html/rfc7231#section-6.5.1", "title": "One or more validation errors occurred.", "status": 400, "traceId": "00-......-3be881755d918044-00" }` <rate-limit-by-key calls="5" renewal-period="10" counter-key="@(context.Request.Body.As<JObject>()["mailTo"].ToString())" /> 我使用了以下格式的相同策略,它按预期工作了 Policy <policies> <inbound> <base /> <rate-limit-by-key calls="5" renewal-period="10" counter-key="@(context.Request.Body.As<JObject>()["mailTo"].ToString())" /> </inbound> <backend> <base /> </backend> <outbound> <base /> </outbound> <on-error> <base /> </on-error> </policies> Test Result Trace 我想政策中有更多逻辑。 这个简单的策略不会产生上述错误: <policies> <inbound> <base /> <rate-limit-by-key calls="5" renewal-period="10" counter-key="@(context.Request.Body.As<JObject>()["mailTo"].ToString())" /> <return-response> <set-status code="200" reason="Ok" /> <set-body>{ "message": "It's fine!" }</set-body> </return-response> </inbound> <backend> <base /> </backend> <outbound> <base /> </outbound> <on-error> <base /> </on-error> </policies> 但我猜想请求正文在策略中至少使用了两次。 因此,您必须将参数 preserveContent 设置为 true: context.Request.Body.As<JObject>(true)["mailTo"].ToString() https://learn.microsoft.com/en-us/azure/api-management/api-management-policy-expressions 为了避免这种情况并让该方法对主体流的副本进行操作,请将preserveContent参数设置为true 两次使用请求的策略: <policies> <inbound> <base /> <rate-limit-by-key calls="5" renewal-period="10" counter-key="@(context.Request.Body.As<JObject>(true)["mailTo"].ToString())" /> <set-variable name="email" value="@(context.Request.Body.As<JObject>(true)["mailTo"]?.ToString().ToLower())" /> <return-response> <set-body template="none">@{ var jsonResponse = new JObject(); jsonResponse.Add(new JProperty("message", (string)context.Variables["email"])); return jsonResponse.ToString(); }</set-body> </return-response> </inbound> <backend> <base /> </backend> <outbound> <base /> </outbound> <on-error> <base /> </on-error> </policies>

回答 2 投票 0

如何使用Azure API Managment进行loadbance?

可以使用Azure API Management来实现负载均衡吗?我想自动将对 API 管理中某个 API 的客户端调用分发到后台中的多个不同的 Web API 服务...

回答 1 投票 0

过滤 API 管理请求中的标头

我正在 Azure 中部署一个基础架构,其中有一个 API 管理实例。 问题是我必须时不时地统计一下到达 API 的请求,组...

回答 1 投票 0

© www.soinside.com 2019 - 2024. All rights reserved.