【问题标题】:How to restrict App Service by ip with Azure如何使用 Azure 通过 ip 限制应用服务
【发布时间】:2022-01-25 07:18:03
【问题描述】:

我有一个 ReactJS webapp 和一个用 ExpressJS 构建的后端 webapp。 它们都作为不同的应用服务托管在 Azure 上。现在每个人都可以访问 Express 应用程序的任何路线;每条路由都从 Conteful API 返回一些 json 数据。

我正在尝试在 Azure 中为 Express 应用设置限制,以便只有我的 React 应用可以向它发出请求。

我发现您可以通过转到 Networking 下的 Express 应用程序来执行此操作,在那里我添加了一条规则,并且我已将 React 应用程序的 ip 列入白名单,但我现在在我的 React 应用程序中得到一个 403 并且它没有'不从 Express 获取任何数据。

我还有什么需要做的吗?

我还发现我的 Express 应用和 React 应用具有相同的虚拟 IP 地址和相同的出站 IP 地址。

有谁知道我可以如何在 Azure 中解决这个问题?

【问题讨论】:

    标签: reactjs azure express


    【解决方案1】:

    很难使用 ip 地址应用您想要的安全性,因为许多 azure 应用程序服务(您的和其他人的)相同的 ip 地址可能是shared,并且可能会改变 - 例如如果您升级到其他 SKU。

    相反,我建议将您的应用服务放在 Azure Virtual Network 中,并使用 Access Restrictions 来控制对 ExpressJS 应用服务的访问。

    具体来说,我建议:

    1. 创建具有两个子网的 azure vnet:
      • 一个用于后端
      • 一个用于前端,包括一个“Microsoft.Web”Service Endpoint
    2. 将 ExpressJS 应用服务in the virtual network 放在后端子网中
    3. 将 ReactJS 应用服务放在前端子网中
    4. 为 ExpressJS 应用服务定义访问限制,允许来自前端子网的流量并禁止所有其他传入流量
    5. 不要为 ReactJS 应用服务定义任何访问限制

    最终结果:

    1. 互联网流量可以到达 ReactJS 应用服务,但不是 ExpressJS 应用服务。
    2. 来自 ReactJS 应用服务的流量可以到达 ExpressJS 应用服务

    【讨论】:

      猜你喜欢
      • 2018-02-09
      • 2012-08-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-10-05
      • 1970-01-01
      • 2017-11-27
      • 2021-05-08
      相关资源
      最近更新 更多