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

如何防止Azure API管理将订阅密钥查询参数传递给Logic App?,azure,azure-logic-apps,azure-api-management,Azure,Azure Logic Apps,Azure Api Management,我正在使用Azure API管理作为我的逻辑应用程序的前端。“需要订阅”设置需要启用,因为我们确实需要保护。但是,我们必须通过查询参数发送密钥,因为我们的调用应用程序只支持GET,不支持POST 因此,我的API调用使用以下格式发送到Azure 现在在Azure API设置中,我确实创建了一个策略集来删除“subscription key”查询参数上的操作,但问题是: 即使参数已从请求主体中删除到Logic App中,但在Logic App中挖掘“原始”输出(其中显示了各种标题)后,我们可以在这

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

因此,我的API调用使用以下格式发送到Azure

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

即使参数已从请求主体中删除到Logic App中,但在Logic App中挖掘“原始”输出(其中显示了各种标题)后,我们可以在这两个标题中看到订阅密钥:

 "X-WAWS-Unencoded-URL": "/myapi/manual/paths/invoke?subscription-key=xxx
 "X-Original-URL": /myapi/manual/paths/invoke?subscription-key=xxx
换句话说,在删除参数之前,Logic App可以使用完整的原始查询URL。这将向逻辑应用程序公开API订阅密钥


有什么解决方法吗?

啊,我现在看到这些头实际上是由Azure API管理自动发送到后端逻辑应用程序API的,所以我所要做的就是设置头策略,除了查询参数策略之外,还要删除它们



这就解决了问题。

啊,我现在看到这些头实际上是由Azure API管理自动发送到后端逻辑应用程序API的,所以我所要做的就是设置头策略以除去查询参数策略之外的头策略



这很好。

您是否尝试使用KeVault存储密钥?能否显示您添加的策略?
这是我添加的。您是否尝试使用KeVault存储密钥?能否显示您添加的策略?
这是我添加的。