我在Azure Functions应用上的COR遇到了一个奇怪的问题
我目前有一个由Azure Active Directory保护的Azure Function应用程序。该API向Angular 7编写的经过身份验证的SPA提供数据,并使用MSAL(1.4.1)库进行身份验证。SPA托管在Azure存储帐户静态网站上,并与带有CDN的自定义域匹配。
我在其他2个站点上也进行了类似的设置,但它们的工作原理很好,区别仅在于身份验证,但是我认为这不是问题,因为我可以登录正常并访问图形端点。
该网站在本地运行很好,但是在生产环境中运行时(静态网站)却失败了。
这是我的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列表无济于事,也不能仅接受通配符(“ *”)
有任何想法吗?
CORS设置仅可用于解决有关从单页应用程序调用Azure函数的问题。但是,如果你为Azure函数应用程序配置了应用程序服务身份验证,则还将面临有关从单个应用程序调用AD登录URL的问题。该设置无法解决。关于如何解决此问题,可以使用Microsoft JavaScript身份验证库(MSAL)将Azure AD集成到单个应用程序中。然后,你可以获取访问令牌并调用Azure函数。有关更多详细信息,请参阅博客。
谢谢Jim,我已经在使用MSAL 1.4.1吗?
@ChrisA因为使用了angular,所以可以直接使用包
@azure/msal-angular
来集成Azure AD:github.com/AzureAD/microsoft-authentication-library-for-js/tree/…。这不是修复程序,但它导致我尝试将示例推送到可以正常工作的生产站点,然后我意识到我的设置代码中存在一些格式错误!