如何防止Azure API管理将订阅密钥查询参数传递给Logic App?

问题描述 投票:0回答:1

我正在使用Azure API管理作为我的Logic App的前端。由于我们确实需要保护,因此需要启用“需要订阅”设置。但是,我们必须通过查询参数发送密钥,因为我们的调用应用程序仅支持GET,不支持POST。

所以我的API调用已以https://my.azure-api.net/myapi/manual/paths/invoke?subscription-key=mykey的格式发送到Azure。>

现在在Azure API设置中,我确实创建了一个策略集来删除对“ subscription-key”查询参数的操作,但这是问题所在:

即使将参数从请求主体中删除到Logic App中,在Logic App中挖掘“ RAW”输出并显示各种标头后,我们仍可以在这两个标头中看到subscription-key:

 "X-WAWS-Unencoded-URL": "/myapi/manual/paths/invoke?subscription-key=xxx
 "X-Original-URL": /myapi/manual/paths/invoke?subscription-key=xxx

换句话说,在删除参数之前,完整的原始查询URL已提供给Logic App。这会将API订阅密钥公开给Logic App。

是否有任何解决方法?

我正在使用Azure API管理作为我的Logic App的前端。由于我们确实需要保护,因此需要启用“需要订阅”设置。但是,我们必须通过查询参数发送密钥...

azure azure-logic-apps azure-api-management
1个回答
0
投票

啊,我现在看到这些标头实际上是由Azure API管理自动发送到后端Logic App API的,因此,我要做的就是设置标头策略以除去查询参数策略之外的所有标头。

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