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