azure - Azure 应用服务 API 应用程序的访问安全性

标签 azure azure-web-app-service azure-api-apps azure-app-service-envrmnt

我们有一个基于 2 层的系统,即后端层和前端层,现在两者都是通过 WebAPI 进行通信的 Azure 网站。我不想将后端 WebAPI 移至 API 应用程序 - 问题是 - 是否可以以这种方式配置 API 应用程序的安全性,即它只能从配置的前端 ASP.NET 进行访问MVC 6 Web 应用程序(托管在 Azure 网站中)。

我们计划使用 Active Directory 作为前端 Web App 和后端 Web App 之间的身份验证方法,以便只有前端才能访问后端 WebAPI。这是最安全的方法吗?或者 API 应用程序是否有更简单但仍然安全的方法?

最佳答案

此时你可以做的是:

  1. 将 WebAPI 转换为 API 应用
  2. 将访问级别设置为内部

这将使 API 应用程序只能从同一资源组内的资源访问。

现在,不幸的是,Web 应用程序(前网站)虽然可以位于同一资源组中,但在预览中,它们并不完全支持网关实现,这意味着它们无法发现 API 应用程序在资源组内,请求将看起来像外部的,因此内部 API 应用程序将无法访问。在我们支持这一点(Web 应用程序与网关完全集成)之前,让您解决此问题的解决方法是有效地将 Web 应用程序变成另一个 API 应用程序。您仍然可以使用您了解和喜爱的所有 Web 应用程序功能,并通过内部 API 应用程序获得所需的功能,直到 Web 应用程序完全与网关结合使用。

您不必启用 AAD 来保护对 API 应用程序的访问,因为 API 应用程序现在是内部的。

如果您的网络应用程序有 AJAX(Javascript 客户端)访问 API 应用程序,则上述方法不起作用(如果 API 应用程序是内部的,则它会阻止任何外部调用)并且您已设置“访问级别” API 应用程序的名称为“公共(public)身份验证”。然后,您可以启用 AAD 身份验证并利用同一网关后面的应用程序之间的无缝身份验证。我们将为您生成一个 token (x-zumo-auth header 包含该 token ),您可以读取该 token 并将其来回传递每个请求,以成功验证请求。

唯一需要注意的是一些已知问题,已列出 here

关于azure - Azure 应用服务 API 应用程序的访问安全性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30322805/

相关文章:

java - 为什么 Spring Boot 中的 REST Controller 返回 HTTP 状态 404 – 未找到

Azure API 应用程序对 WebJobs 的支持

powershell - 如何捕获 PowerShell 上的异常?

c# - Azure webjob调用内部服务

sql-server - 如何使用 Entity Framework Core 进行迁移,通过 ASP.NET CORE MVC 连接到现有的 Azure SQL 数据库?

azure - Azure Api Apps 如何接受带通配符的 SSL 证书

azure - 使用 terraform 创建新的 azure 资源组时出错

c# - NReco PDF 在 Azure 上有黑色方 block

visual-studio - PowerBI Web 应用仪表板示例错误 AADSTS50011

asp.net-core - Azure 中使用 NLog 和 MS SQLServer 进行 ASP.NET Core 日志记录