Microsoft Identity Platform:SPA刷新令牌过期后的流程及用户操作疑问
Azure AD单页应用(SPA)刷新令牌有效期疑问解答
我查阅了微软官方文档,得知单页应用(SPA)的刷新令牌有效期为24小时,但对以下两点存在疑问:调用刷新令牌API能否获取可续用的新刷新令牌?24小时后是否必须提示用户重新登录?
文档中蓝色框内的说明如下:
使用初始刷新令牌获取的后续刷新令牌会沿用该过期时间,因此应用必须准备好通过交互式身份验证重新运行授权码流,每24小时获取一次新的刷新令牌
这是否意味着用户必须再次输入凭证?
文档后续补充说明:
用户无需输入凭证,通常甚至不会看到相关用户体验,仅需重新加载应用
看起来用户不需要输入凭证,但这段描述又让我困惑:
浏览器必须在顶级框架中访问登录页面以显示登录会话
这部分是否需要用户重新操作?
关键结论梳理
- 刷新令牌链的有效期限制:24小时有效期内,调用刷新令牌API可以获取新的访问令牌,但后续生成的刷新令牌不会延长总有效期——从初始刷新令牌生成的那一刻起,24小时后整个刷新令牌链都会失效,必须重新触发授权码流。
- 无需用户手动输入凭证:24小时后触发的交互式授权码流,不需要用户重新输入账号密码。因为用户浏览器中已有Azure AD的有效登录会话,当应用在顶级框架跳转到登录页面时,Azure AD会自动识别会话,直接返回授权码,用户几乎无感知,仅需应用完成重新加载即可。
- 顶级框架访问的原因:要求在顶级框架打开登录页面,是为了规避浏览器第三方Cookie限制(如SameSite策略)。如果在嵌套框架中跳转,可能无法读取Azure AD的会话Cookie,反而会触发用户重新登录流程。顶级框架访问能确保会话Cookie正常读取,让流程自动完成。
内容的提问来源于stack exchange,提问作者Mazza
相关产品推荐
相关产品推荐

