Angular Azure Active Directory B2C 身份验证 - CORS 问题
Posted
技术标签:
【中文标题】Angular Azure Active Directory B2C 身份验证 - CORS 问题【英文标题】:Angular Azure Active Directory B2C Authentication - CORS issue 【发布时间】:2020-06-08 00:38:49 【问题描述】:我正在 Angular 中实现 Azure Active Directory B2C 身份验证。我正在使用 msal 拦截器连接 Azure AD B2C。身份验证请求失败并出现错误
通过“https://login.microsoftonline.com/...”访问 XMLHttpRequest 来自原点 'http://localhost/...' 已被 CORS 策略阻止:否 请求中存在“Access-Control-Allow-Origin”标头 资源。
我根据这篇文章配置了一切:https://medium.com/@sambowenhughes/configuring-your-angular-6-application-to-use-microsoft-b2c-authentication-99a9ff1403b3
【问题讨论】:
我不熟悉你的技术,但是我遇到了 CORS 错误(php + react),它实际上是说你需要有当前的响应头“access-control-allow-origin”正确的值(或通配符)。也许作为一个快速的肮脏修复(显然不是仅用于开发的生产)尝试使用一些 cors 浏览器扩展? @matri70boss 在这种情况下,错误来自 Azure AD B2C,我们无法控制 CORS 标头。虽然 URL 似乎是正确的格式,但在这种情况下 CORS 被 B2C 阻止似乎有点奇怪:\ @juunas 是的,你的权利。从“用户流”运行“登录”策略时,它重定向到 localhost:4200 并且我正在获取令牌,但是在从角度应用程序运行时,我遇到了 cors 问题。您是否知道如何解决此问题,或者我必须在 Azure AD B2C 租户中进行任何配置更改才能启用来自我的来源的 cors 是 GET 请求还是其他 HTTP 方法?我们只支持 GET 到那个端点。一些库尝试执行 OPTIONS,但失败了。 这是对该端点的 Get 请求。我在 Angular 中使用的库是 MSAL 【参考方案1】:那篇文章大约有两年的历史了,this.clientApplication.authority = "https://login.microsoftonline.com/tfp/"
看起来不对。它应该类似于https://$b2cTenantName.b2clogin.com/$b2cTenantName.onmicrosoft.com/B2C_1_Sign_In
。
您可以尝试从https://github.com/Azure-Samples/active-directory-b2c-javascript-angular-spa 配置角度示例应用程序并将其用作起点吗?
【讨论】:
以上是关于Angular Azure Active Directory B2C 身份验证 - CORS 问题的主要内容,如果未能解决你的问题,请参考以下文章
在 Azure Active Directory 上启用 CORS
Windows Azure Active Directory 承载身份验证
如何使用 Azure AD 为应用服务上的 Spring Boot 应用设置重定向 URI
Azure B2C 来宾(外部 Azure Active Directory)X 成员(联合 Azure Active Directory)