如何公开访问需要访问本地数据库(通过 ExpressRoute)的 Azure Web API?

How to publicly access an Azure Web API which needs to access an On-Premise DB (Via ExpressRoute)?

大家好!

正如您在图片中看到的,这基本上是我正在规划的架构,但我有一些疑问。 我需要创建一个 public 可访问的 API 层,该层还需要通过 Express Route 访问本地 SQL 数据库。 Express Route 连接已经建立。

经过一些挖掘后,我发现为了使 Web API 访问内部部署数据库,我需要使用 VNet 集成托管 Web API 的应用程序服务与通过 Express Route 连接的虚拟网络集成。但是,我有几个问题。

  1. VNet 集成是否足以在 Web API 和本地数据库之间建立成功的 TCP 1433 通信?如果没有,请让我知道我应该配置哪些其他服务?
  2. 我会失去 public 网络访问权 API 吗?如果是这样,制作 Web 的最佳方法是什么 API public?

感谢任何帮助,感谢您抽出宝贵时间!

  1. 您可以使用 VNet 集成,但您可能还想看看简单地对数据库设置防火墙限制。您可以为 Azure 应用服务的 IP 范围开放对数据库的访问。根据您所使用的应用服务计划,有一个 10 - 15 outbound IPs 的列表,您可能希望将其列入白名单。这使您可以 API 访问数据库,同时数据库仍受到 public 访问保护。
  2. 如果您想让您的 API public 易于访问(至少在某些路线上),您需要向所有人开放您的 API。我认为最好的方法是为您要保护的路线设置授权。例如使用 token/bearer 身份验证。这样,您就可以访问 API,但您需要对某些路由进行身份验证。您可以在 Angular JS 应用程序中处理身份验证,例如 Auth0 or other OpenID providers.