繁体   English   中英

Azure AD B2C-MSAL JS-刷新令牌会产生AADB2C90055

[英]Azure AD B2C - MSAL JS - Refreshing token yields AADB2C90055

我们正在使用Azure AD B2C通过我们的API对用户进行身份验证。 客户端(角度2)和API都具有相同的客户端ID。

这一切都很好。 作为作用域,我定义了openid

但是,当登录超过有效期后调用AcquireTokenAsync时,我现在收到此错误:

“ AADB2C90055:请求中提供的范围'openid配置文件'必须指定资源,例如' https://example.com/calendar.read '。

我从Angular应用程序中调用此方法; 我们正在使用MSAL.JS。 因此,它在令牌到期时间(默认为60分钟)内可以正常工作,但是60分钟后,我开始收到此错误。

与此处的错误1完全相同: Azure AD B2C令牌问题

这是MSAL JS中的错误还是我们的设置不正确? 我知道我可以为我们的API创建一个单独的客户端ID,但这在登录时效果很好,所以我没有打扰。 我们的API只需要知道用户名,电子邮件等。

您无法刷新令牌的原因是, 用于JavaScriptMicrosoft身份验证库(MSAL.js)仅支持OAuth隐式授予。

根据设计, OAuth隐式授权不支持/返回刷新令牌:

隐式授予类型用于获取访问令牌( 它不支持刷新令牌的发布 ),并针对已知操作特定重定向URI的公共客户端进行了优化。 这些客户端通常是在浏览器中使用脚本语言(例如JavaScript)实现的。

为了获得刷新令牌,您需要使用授权代码授予进行身份验证。 这将需要在后端进行一些工作,以捕获授权码并将其转换为访问和刷新令牌。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM