[英]CORS issue when getting a token in Azure AD B2C (Implict Flow)
我们正在尝试使用隐式流程通过Web应用程序实现Azure AD B2C身份验证。 我们可以登录并成功重定向到正确的URL,其中包括重定向URL上的正确项目(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请求,以检索该应用程序需要与之交互的资源(网络api)的令牌。 但是,当我尝试对该令牌端点进行XHR POST( https://login.microsoftonline.com/ {tenant} /oauth2/v2.0/token?p=b2c_1_signinpolicy)时,浏览器(正确地)执行预检检查(一个OPTIONS调用)以确定它是否可以像在其他域上一样调用该终结点。 OPTION调用有效,但是它不包含浏览器允许对端点的POST调用所需的标头(Access-Control-Allow-Origin)。
我是否缺少某些东西或做错了什么?
任何帮助表示赞赏!
乔恩
Azure AD身份验证终结点(B2C或其他)不支持CORS,也不支持。
对于Javascript应用程序,我们使用带有response_type=token
或response_type=id_token
的隐式流程直接从授权端点获取令牌-无需CORS。 随时尝试,它应该可以正常工作。
我们之所以说现在不支持Javascript应用,是因为一小时后,您使用此方法获得的id_token / access_token将过期。 而且,我们没有办法以静默方式刷新/获取新令牌。 这意味着在最佳情况下,您的Javascript应用程序将不得不每小时重定向到AAD。
我们认为这是不可接受的,因此我们正在开发一种可以解决此问题的功能。 但是目前,我们将继续称不支持Javascript应用。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.