Azure AD B2C CORS 错误
Posted
技术标签:
【中文标题】Azure AD B2C CORS 错误【英文标题】:Azure AD B2C CORS errors 【发布时间】:2020-10-09 23:10:51 【问题描述】:我正在尝试运行示例
https://github.com/Azure-Samples/active-directory-b2c-javascript-msal-singlepageapp
第 1 部分工作正常。我正在使用我自己的 Azure AD B2C 尝试第 II 部分。
我用我的注册用户流程中的 URL 更新了 policies.js 文件,用我的应用程序 ID 更新了 authconfig.js。
const b2cPolicies =
names:
signUpSignIn: "B2C_1_sign_up_sign_in",
,
authorities:
signUpSignIn:
authority: "https://zzz.b2clogin.com/zzz.onmicrosoft.com/v2.0/.well-known/openid-configuration?p=B2C_1_sign_up_sign_in",
但是我得到一个 CORS 错误:
Access to XMLHttpRequest at
https://zzz.b2clogin.com/zzz.onmicrosoft.com/v2.0/.well-known/openid-configuration?p=B2C_1_sign_up_sign_in/v2.0/.well-known/openid-configuration' from origin 'http://localhost:6420'
has been blocked by CORS policy:
No 'Access-Control-Allow-Origin' header is present on the requested resource.
该示例显然希望按照说明从 localhost 运行。我的配置中是否缺少任何内容?有什么想法吗?
它生成双 ./wellknown 的事实令人怀疑,但我不知道如何设置 msalConfig。
更新:我已经尝试删除 .wellknown 部分的 url,但它仍然不起作用。该请求看起来更好,因为它没有重复的 .wellknown 位,但它没有我认为必不可少的 p=B2C_1_sign_up_sign_in。
【问题讨论】:
您的 MSAL 配置很可能是错误的,因为构造的 URL 是错误的。你能展示一下它的样子吗? @juunas 见上文,我从“运行用户流程”对话框中复制了它。 【参考方案1】:注意样本中的权限定义为:
signUpSignIn:
authority: "https://fabrikamb2c.b2clogin.com/fabrikamb2c.onmicrosoft.com/b2c_1_susi",
,
所以你应该将权限定义为:
https://zzz.b2clogin.com/zzz.onmicrosoft.com/B2C_1_sign_up_sign_in
【讨论】:
很好看。它应该可以从用户流程中复制和粘贴。【参考方案2】:我注意到授权端点以小写形式返回带有 b2c_1 的策略,即使在 Azure 策略创建中它以大写为前缀。
https://zzz.b2clogin.com/zzz.onmicrosoft.com/B2C_1_sign_up_sign_in
【讨论】:
以上是关于Azure AD B2C CORS 错误的主要内容,如果未能解决你的问题,请参考以下文章
Azure AD B2C 登录 - “包含阻止加载的脚本错误”
访问被 Azure AD B2C 锁定的 Azure 函数应用时收到 403 错误
Azure AD B2C 错误 - IDX10501:签名验证失败