2

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

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

4

1 回答 1

3

此时你可以做的是:

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

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

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

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

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

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

于 2015-05-19T18:17:41.910 回答