Azure AppService>Networking>Access Restrictions & handling 308 redirects from API 管理

Azure AppService>Networking>Access Restrictions & handling 308 redirects from API Management

只是想看看是否有任何 Azure App Service 或 APIM 专家可以帮助我解决在 限制对我的应用程序服务的访问方面让我感到困惑的事情我的 Azure API 管理服务 的 IP 地址的端点。我可以在“允许”规则中成功设置 APIM 的 IP 地址,在网络选项卡的访问限制部分,在我定位的应用程序服务中。但是发生了什么,APIM 重定向我的浏览器以使用它自己的 IP 地址访问应用程序服务端点,当然我只是将其设置为仅允许从 APIM IP 访问地址。

一个 308 Moved Permanently http 代码被发送到我的浏览器,我的浏览器被发送到应用程序服务页面。我遇到了 403 受限错误,因为访问应用程序服务的确实是我的 IP 地址。我期待被重定向到我想要的应用程序服务,并被允许访问,因为它是从我的 APIM 的“允许”IP 地址传递的。我是否需要使用 APIM 策略或目标应用服务中的某种网络策略以某种方式对此进行调整?

当我尝试从 APIM 端点访问应用程序时,我的重定向导致 Web 应用程序限制我的 IP 地址

任何想法都会非常有帮助

如果您要重定向客户端以直接转到您的应用服务,则不能对您的应用服务设置 IP 限制。应用服务对来自 APIM 的重定向一无所知(因此您希望允许它)。此外,如果您放入 308 重定向,下次客户端可能(基于其缓存)直接访问应用服务,而无需再次先访问 APIM。

因此:您在这里尝试的方法不起作用 - 也没有太大意义。如果您希望所有客户端都通过 APIM,则在 APIM 中转发请求而不是重定向客户端。

APIM 从不回复自己的重定向,所以我假设您的后端会这样做。默认情况下,无论状态代码如何,APIM 都会将后端 http 响应传递给客户端。但是您可以使用策略来决定如何处理一般的响应。具体来说,对于重定向,forward-request 政策上有一个选项 follow-redirects 可以满足您的需要。