来自某些无法识别的 IP 范围的 Webhook 回调的逻辑应用程序问题

Logic App issue with webhook callbacks comming from some unrecognized IP ranges

我们正在使用带有 webhook 的 Azure 逻辑应用程序。

Webhook 正在通过 Azure APIM 调用一些 API(服务结构后端 - 但这不重要)。 完成特定工作后,API 会调用逻辑应用程序的 webhook 回调 - 完全按照书本进行。

另一方面,LA 的触发器设置了 IP 范围限制。 直到最近,一切都运行良好 - 只是在我们的一些环境中,有时来自 API 的回调调用失败 - 显然是因为逻辑应用程序无法识别 IP。

第一个问题:为什么(是)限制也适用于回调 - 这些不是实际触发器?

第二个问题:回调如何在我们的某些环境中仍然有效,并应用相同的限制。

关于 IP 限制,处理所有传入请求的网关对于请求连接器和 HTTP WebHook 连接器都是相同的。虽然您可能正在使用此处的操作,但有一个 WebHook 触发器以类似的方式工作,但作为触发器。

至于为什么您有时会失败取决于如何将请求从您的 API 路由到逻辑应用程序。确保仅从单个 IP 访问的一种方法是将这些回调路由到 APIM,并让 APIM 将请求转发到您的逻辑应用程序。这样,对您的逻辑应用程序的所有请求都将来自 APIM。


要通过 APIM 路由回调请求,您将需要 APIM 中的特殊 API/Operation 将请求转发到 header 中传递的 URL 或查询参数。

因此,您可以在自定义 header 中使用回调 URL 或作为查询参数调用此 APIM 端点,而不是直接调用回调 URL。此操作的 APIM 策略将使用 set-backend-service and rewrite-uri 策略将此调用转发到逻辑应用端点。