azure-api-management 相关问题

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

在 Azure APIM 策略中验证 JWT

在 Azure APIM 中,我正在尝试创建一个验证 JWT 的策略。无论我尝试什么,我总是收到“401:无效的 JWT”错误。有谁知道我做错了什么? (也许我...

回答 3 投票 0

API 管理 - 使设置查询参数以不区分大小写的方式工作

我们在 API Manager 中配置了一个 API,其中包含一些产品和策略。其中一项策略尝试确保某些查询参数始终设置为特定值。 我们在 API Manager 中配置了一个 API,其中包含一些产品和策略。其中一项策略试图确保某些查询参数始终设置为特定值。 <set-query-parameter name="myParameter" exists-action="override"> <value>myFixedValue</value> </set-query-parameter> 这工作得很好,直到有人添加具有不同大小写的相同参数,例如。 MyParameter 或 mYpAraMeTeR,在这种情况下,设置查询参数策略将被忽略,因为它区分大小写。 有没有办法确保以不区分大小写的方式正确应用此策略? 经过一番搜索,我找到了政策validate-parameters,我希望它能有所帮助,但到目前为止我还没有找到神奇的属性组合。 <validate-parameters specified-parameter-action="ignore" unspecified-parameter-action="prevent" errors-variable-name="validationErrors"> <headers specified-parameter-action="ignore" unspecified-parameter-action="ignore"/> <query specified-parameter-action="ignore" unspecified-parameter-action="prevent"> <parameter name="myParameter" action="ignore" /> </query> <path specified-parameter-action="ignore"/> </validate-parameters> 我希望这只会传递提供的所有标头和路径,但将允许的查询参数限制为仅myParameter 希望有更多 APIM 知识的人可以帮助我:) 看起来validate-parameters也区分大小写。 正确的政策定义是- <policies> <inbound> <base /> <validate-parameters specified-parameter-action="ignore" unspecified-parameter-action="prevent" errors-variable-name="requestParametersValidation"> <headers specified-parameter-action="ignore" unspecified-parameter-action="ignore" /> <query specified-parameter-action="ignore" unspecified-parameter-action="prevent"> <parameter name="myParameter" action="ignore" /> </query> </validate-parameters> </inbound> <backend> <base /> </backend> <outbound> <base /> </outbound> <on-error> <base /> </on-error> </policies> 但是,如果您传递 myParameter 参数以外的任何其他值,则会出现错误。它不适用于 myParameter 的大小写值。 因此,或者我使用以下策略,该策略仅适用于 myParameter,但不适用于 myParameter 参数的任何其他组合。 <policies> <inbound> <base /> <choose> <when condition="@(context.Request.Url.Query.TryGetValue("myParameter", out var value) && value.Any(v => string.Equals(v, "myFixedValue", StringComparison.OrdinalIgnoreCase)))" /> <otherwise> <return-response> <set-status code="400" reason="Bad Request" /> <set-header name="Content-Type" exists-action="override"> <value>text/plain</value> </set-header> <set-body>@("Only the 'myParameter' query parameter is allowed.")</set-body> </return-response> </otherwise> </choose> </inbound> <backend> <base /> </backend> <outbound> <base /> </outbound> <on-error> <base /> </on-error> </policies> 输出- 追踪-

回答 1 投票 0

如何在 Azure APIM 策略中使用 System.Net.IPAddress 解析 IP 地址

我正在尝试使用 Azure APIM 中的 System.Net.IPAddress 类通过策略解析 IP 地址。 政策: 我正在尝试使用 Azure APIM 中的 System.Net.IPAddress 类通过策略解析 IP 地址。 政策: <set-variable name="rawIpWhiteList" value="@{ List<string> rawIpWhiteList = new List<string>(){ "42.45.156.15", "177.136.25.113", "92.61.77.167", "80.254.169.123", }; return new JArray(rawIpWhiteList); }" /> <set-variable name="validSingleIPs" value="@{ List<string> rawIpWhiteList = ((JArray)context.Variables["rawIpWhiteList"]).ToObject<List<string>>(); List<string> validIpWhiteList = rawIpWhiteList.Where(ipString => IPAddress.TryParse(ipString, out IPAddress _)).ToList(); return new JArray(validIpWhiteList); }" /> 但是,我收到以下错误: Error: One or more fields contain incorrect values: Error: "ValidationError" - "Error in element 'set-variable' on line 26, column 4: The name 'IPAddress' does not exist in the current context" Error: Error: "ValidationError" - "Error in element 'set-variable' on line 26, column 4: The name 'IPAddress' does not exist in the current context" 但根据策略表达式docs,策略表达式中应允许使用 System.Net.IPAddress 类型并具有以下受支持的成员:AddressFamily、Equals、GetAddressBytes、IsLoopback、Parse、TryParse、ToString。 我错过了什么? 我已将您的政策修改如下。请使用它,你也会得到结果。 <policies> <inbound> <base /> <set-variable name="rawIpWhiteList" value="@{ List<string> rawIpWhiteList = new List<string>(){ "**.**.**.***", "**.**.**.***", }; return new JArray(rawIpWhiteList); }" /> <set-variable name="validSingleIPs" value="@{ List<string> rawIpWhiteList = ((JArray)context.Variables["rawIpWhiteList"]).ToObject<List<string>>(); List<string> validIpWhiteList = rawIpWhiteList.Where(ipString => System.Net.IPAddress.TryParse(ipString, out System.Net.IPAddress _)).ToList(); return new JArray(validIpWhiteList); }" /> </inbound> <backend> <base /> </backend> <outbound> <base /> </outbound> <on-error> <base /> </on-error> </policies> 输出-

回答 1 投票 0

Azure API 管理通配符操作返回 404

我在 APIM 中创建了 Teamtailor API 的通配符操作 https://api.teamtailor.com/v1 当我发出请求时,它会调用正确的后端端点 https://api.teamtailor.com/v1/jobs,但它...

回答 1 投票 0

Azure API 管理创建/更新策略

我们正在将发布管道从 Azure 内置发布迁移到基于 YAML 代码的管道。在我们开始研究 API 管理之前,一切进展顺利。我们已经成功导入 OpenAPI 端...

回答 1 投票 0

未经授权。访问令牌丢失或无效。 【API管理中的Oauth 2.0授权服务器】

我已在 API 管理中配置了版本 v1 的 Oauth 2.0 授权服务器,并且还配置了 API 以使用 OAuth 2.0 用户授权。 选择

回答 1 投票 0

API Manager OAuth 服务器生成错误的受众声明

我已经根据示例在 API Manager 中设置了后端应用程序、客户端应用程序和 OAuth 服务器。目前,OAuth 服务器和两个应用程序注册都设置为使用 v2 端点。当前...

回答 1 投票 0

无法使用for_each循环创建多个azurerm_api_management_api

我无法在一个 API 管理 GW 下创建多个 api。每个API都有相同的后端,但开放的api文档不同。下面是我的代码。不确定我收到的错误是因为我的...

回答 1 投票 0

“calls”属性无效 - 值“”不在允许的值范围内

我想添加一个条件,仅当给定(local.limit == true)时才允许我添加自定义速率限制,否则不要将其添加到策略中。当提供速率限制时它工作正常,但如果...

回答 1 投票 0

将全局标头/参数分配给Azure APIM中的所有API

有没有办法创建可供 Azure APIM 中的所有 API 使用的全局标头或参数,然后可以为每个 API 显示这些标头或参数? 我在“所有API&qu...

回答 1 投票 0

无法在现有的azure vnet子网中部署Azure Api管理

我正在尝试在现有 vnet 子网中部署 API 管理。它是一个内部 API 管理网关 stv2,所以我必须提供公共 IP,并且需要使用公共 IP 地址

回答 1 投票 0

使用 APIM 的 Azure OpenAI 和负载均衡器配置

我正在尝试使用 API 管理的 Azure OpenAI 和负载均衡器配置。我有一个基本的网络应用程序,其前端可以接受输入并总结文本。 我已经配置了我的l...

回答 1 投票 0

如何使用 REST API 从逻辑应用连接获取 Json 视图

我想使用rest api来修改逻辑应用(类型:标准)的连接中的json视图,但我不知道相应的API来实现它: 我使用开发工具来获得...

回答 1 投票 0

Azure API 管理平台版本 stv1 到 stv2

您可能知道,Azure API 管理平台版本 stv1 将于 2024 年 8 月弃用。 现在我们需要将其迁移到最新的版本,即 stv2。 我有 Terraform 代码

回答 1 投票 0

Azure API 管理策略:无法添加条件来检查字符串是否为空

我正在为 API 添加策略,我已启用许多 API,并且想要添加 API 特定策略。我根据配置文件中发送的 API 所有者请求添加速率限制,某些 API 提供速率限制...

回答 1 投票 0

az cli 创建引用密钥保管库机密的 apim 命名值

我想使用 az cli 创建一个引用密钥保管库机密的 apim 命名值。 似乎本机不支持此功能:https://github.com/Azure/azure-cli/issues/27822 我已经尝试过这项工作-

回答 1 投票 0

Azure APIM 根据两种不同的声明验证 JWT

我正在尝试在 Azure APIM 中创建一个策略,以根据两个不同的声明验证 JWT 令牌(Azure AD 令牌)。 我的 API 可能被其他应用程序或用户使用 - 它可能被称为...

回答 3 投票 0

如何为 CORS 配置 Azure API 管理

我已经创建了 Azure API 管理服务并连接了我的 API。我向其中添加了 CORS 策略。 我检查了计算有效策略,结果是这个策略 <

回答 4 投票 0

无法对 azurerm_api_management_api 使用 terraform for_each 块

我有两个开放 API 文档,我们称它们为 openapione.yaml,另一个是 openapitwo.yaml。现在我正在使用 for_each 块,但不知何故它不适用于我的 terraform 代码。我想要的只是它应该选择

回答 1 投票 0

如何使用C#获取Azure API管理的日志?

我想使用 Azure API 管理中的日志并查询成功调用 API 的数量,或者用户在过去一个月中在 C#/dotnet 中进行了多少次 API 调用。 我只需要...

回答 1 投票 0

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