javascript – 在Azure AD B2C中获取令牌时的CORS问题(Implict Flow)

我们正尝试使用implict流程使用Web应用程序实施Azure AD B2C身份验证.我们可以登录并成功重定向到正确的网址,其中包含重定向网址(id_token& code)上的正确项目.但是,正如本文建议的那样( https://github.com/Azure/azure-content/blob/master/articles/active-directory-b2c/active-directory-b2c-reference-oidc.md#get-a-token),应用程序需要对令牌端点执行xhr POST请求,以检索应用程序需要与之交互的资源(web api)的令牌.但是,当我尝试对该令牌端点( https://login.microsoftonline.com/ {tenant} /oauth2/v2.0/token?p=b2c_1_signinpolicy)执行XHR POST时,浏览器(非常正确地)执行操作前检查(OPTIONS调用)以确定是否它可以调用端点,因为它位于不同的域上. OPTION调用有效,但它不包含浏览器允许POST调用端点所需的头文件(Access-Control-Allow-Origin).

我错过了什么或做错了什么?

任何帮助赞赏!

乔恩

解决方法

Azure AD身份验证端点(B2C或其他)不支持CORS,也不支持CORS.

对于Javascript应用程序,我们使用带有response_type = token或response_type = id_token的隐式流程来直接从授权端点获取令牌 – 无需CORS.随意尝试一下,它应该工作得很好.

我们之前说Javascript应用程序不受支持的原因是因为一小时后,使用此方法的id_token / access_token将过期.我们没有办法静刷新/获取新令牌.这意味着在最好的情况下,您的Javascript
应用程序必须每小时重定向到AAD.

我们认为这是不可接受的,因此我们正致力于解决此问题的功能.但是现在我们将继续调用不受支持的Javascript应用程序.

相关文章

前言 做过web项目开发的人对layer弹层组件肯定不陌生,作为l...
前言 前端表单校验是过滤无效数据、假数据、有毒数据的第一步...
前言 图片上传是web项目常见的需求,我基于之前的博客的代码...
前言 导出Excel文件这个功能,通常都是在后端实现返回前端一...
前言 众所周知,js是单线程的,从上往下,从左往右依次执行,...
前言 项目开发中,我们可能会碰到这样的需求:select标签,禁...