首页 > 解决方案 > 在多个 Azure Functions 应用之间共享 AAD 身份验证

问题描述

我有多个 Azure Functions 应用程序和一个直接连接到它们的单页应用程序。

目前,单页应用程序(静态 html/js 内容)部署为启用了 EasyAuth AAD 身份验证的应用程序服务 Web 应用程序。

是否可以与 Azure Functions 应用程序共享身份验证 cookie/标头或其他内容?

如果不是,解决方案是什么?我希望用户登录一次并在任何地方进行身份验证。

标签: azureazure-active-directoryazure-functions

解决方案


您在这里处理的问题是 CORS。若要允许单页应用程序无需额外身份验证即可调用 Azure 函数,您需要确保单页应用程序和 Azure 函数在同一域中公开。

有几种方法可以做到这一点。

  1. 您可以使用Azure 流量管理器等服务和自定义域来确保您的函数和 Web 应用位于同一域中
  2. 您可以将Azure 函数代理设置为前端,然后通过代理路由所有其他函数(包括 Web 应用程序)。这样,所有 url 看起来都来自同一个域,并且身份验证将无缝工作。

推荐阅读