当前访问令牌过期后,可使用刷新令牌获取新的访问权限和刷新令牌对。 当客户端获取访问令牌来访问受保护资源时,它同时还会收到一个刷新令牌。
刷新令牌还用于获取其他资源的额外访问令牌。 刷新令牌绑定到用户和客户端的组合,但不绑定到资源或租户。 客户端可使用刷新令牌在其有权限的情况下跨资源和租户的任何组合获取访问令牌。 刷新令牌是经过加密的,只有 Microsoft 标识平台可以读取它们。
刷新令牌的生存期比访问令牌要长。 刷新令牌的默认生存期是单页应用的 24 小时,对于所有其他方案,为 90 天。 每次使用时,刷新令牌都会用新的令牌替换自己。 Microsoft 标识平台不会在使用旧刷新令牌提取新的访问令牌时将旧刷新令牌撤销。 获取新的刷新令牌后,才会安全地将旧的刷新令牌删除。 刷新令牌需要像访问令牌或应用程序凭据一样安全地存储。
备注
发送到已注册为 spa
的重定向 URI 的刷新令牌将在 24 小时后过期。 使用初始刷新令牌获取的其他刷新令牌将承袭该过期时间,因此应用必须准备好使用交互式身份验证重新运行授权代码流,以每隔 24 小时获取一个新的刷新令牌。 用户无需输入其凭据,通常甚至不会看到任何相关的用户体验,而只需重新加载应用程序即可。 浏览器必须访问顶级框架中的登录页才能显示登录会话。 这是由阻止第三方 Cookie 的浏览器中的隐私功能造成的。
刷新令牌将在生存期过后自动过期。 此外,登录服务可以在其过期前随时吊销它们。 应用应通过将用户重定向到交互式登录提示来重新进行身份验证并获取新令牌,从而正常处理此类吊销。
由于凭据发生更改,或由于用户或管理员操作,服务器可能会撤销刷新令牌。 刷新令牌分为两类:颁发给机密客户端的令牌(最右侧的列)以及颁发给公共客户端的令牌(所有其他列)。
更改 | 基于密码的 Cookie | 基于密码的令牌 | 不基于密码的 Cookie | 不基于密码的令牌 | 机密客户端令牌 |
---|---|---|---|---|---|
密码过期 | 一直有效 | 一直有效 | 一直有效 | 一直有效 | 一直有效 |
用户更改了密码 | 已撤销 | 已撤销 | 一直有效 | 一直有效 | 一直有效 |
用户执行 SSPR | 已撤销 | 已撤销 | 一直有效 | 一直有效 | 一直有效 |
管理员重置密码 | 已撤销 | 已撤销 | 一直有效 | 一直有效 | 一直有效 |
用户撤消其刷新令牌 | 已撤销 | 已撤销 | 已撤销 | 已撤销 | 已撤销 |
管理员撤销用户的所有刷新令牌 | 已撤销 | 已撤销 | 已撤销 | 已撤销 | 已撤销 |
备注
不会为其资源租户中的 B2B 用户撤销刷新令牌。 令牌需要在主租户中吊销。