Warm tip: This article is reproduced from serverfault.com, please click

angular-带有AAD的Azure Function Cors

(angular - Azure Function Cors with AAD)

发布于 2020-11-30 11:22:26

我在Azure Functions应用上的COR遇到了一个奇怪的问题

我目前有一个由Azure Active Directory保护的Azure Function应用程序。该API向Angular 7编写的经过身份验证的SPA提供数据,并使用MSAL(1.4.1)库进行身份验证。SPA托管在Azure存储帐户静态网站上,并与带有CDN的自定义域匹配。

我在其他2个站点上也进行了类似的设置,但它们的工作原理很好,区别仅在于身份验证,但是我认为这不是问题,因为我可以登录正常并访问图形端点。

该网站在本地运行很好,但是在生产环境中运行时(静态网站)却失败了。

这是我的CORS页面:

Cors页面

但这是我的错误:

通过以下网址访问XMLHttpRequest:https://login.windows.net/GUID/oauth2/authorize?response_type = id_token&redirect_uri = https%3A%2F%2Forpheusapiv2.azurewebsites.net%2F.auth%2Flogin%2Faad%2 [CODE]' (从'https://orpheusapiv2.azurewebsites.net/api/v2.0/FUNCTION_NAME'重定向)起源于https://orpheus.langladecapital.com',已被CORS政策阻止:否'Access-Control-Allow -Origin'标头出现在请求的资源上。

https://login.windows.net添加到CORS列表无济于事,也不能仅接受通配符(“ *”)

有任何想法吗?

Questioner
Chris A
Viewed
11
Jim Xu 2020-12-01 13:15:24

CORS设置仅可用于解决有关从单页应用程序调用Azure函数的问题。但是,如果你为Azure函数应用程序配置了应用程序服务身份验证,则还将面临有关从单个应用程序调用AD登录URL的问题。该设置无法解决。关于如何解决此问题,可以使用Microsoft JavaScript身份验证库(MSAL)将Azure AD集成到单个应用程序中。然后,你可以获取访问令牌并调用Azure函数。有关更多详细信息,请参阅博客