可以配置由Microsoft标识平台颁发的访问、ID 或安全断言标记语言(SAML)令牌的生存期。 可以为组织中的所有应用、多租户应用程序或特定服务主体设置令牌生存期。 不支持为 托管标识服务主体 配置令牌生存期。
在Microsoft Entra ID 中,策略定义应用于单个应用程序或组织中所有应用程序的规则。 每个策略类型都具有唯一属性,用于确定如何对其分配的对象强制执行它。
可以将策略指定为组织的默认策略,除非被优先级更高的策略覆盖,否则将应用于所有应用程序。 还可以将策略分配给特定应用程序,优先级因策略类型而异。
有关实际指南,请参阅 有关如何配置令牌生存期的示例。
限制和注意事项
在配置令牌生存期策略之前,请注意以下事项:
- 无门户 UI:令牌生存期策略只能通过 Microsoft 图形 API 和 Microsoft Graph PowerShell SDK 进行管理。 Microsoft Entra 管理中心中没有配置界面。
- SharePoint 和 OneDrive:可配置令牌生存期策略仅适用于访问 SharePoint Online 和 OneDrive for Business 资源的移动和桌面客户端。 它不适用于 Web 浏览器会话。 若要管理 Web 浏览器会话生存期,请使用 条件访问会话生存期。 请参阅 SharePoint Online 博客 ,了解如何配置空闲会话超时。
-
个人Microsoft帐户:令牌生存期策略不适用于为个人Microsoft帐户开发的应用程序(
signInAudience设置为AzureADandPersonalMicrosoftAccount或PersonalMicrosoftAccount)。 - 托管标识:不支持为 托管标识服务主体 配置令牌生存期。
- 刷新和会话令牌生存期:刷新和会话令牌生存期不再可通过令牌生存期策略进行配置。 Microsoft Entra ID 仅使用下面所述的默认值。 若要控制用户登录的频率,请改用 条件访问登录频率 。
访问令牌、SAML 令牌和 ID 令牌的令牌生存期策略
可为访问令牌、SAML 令牌和 ID 令牌设置令牌生存期策略。
访问令牌
客户端使用访问令牌来访问受保护的资源。 访问令牌仅可用于用户、客户端和资源的特定组合。 调整访问令牌生存期的利弊是可以提高系统性能,但也会增加客户端在用户帐户禁用后保留访问权限的时间。 通过减少客户端获取刷新访问令牌的次数可以实现系统性能的提升。
访问令牌的默认生存期是可变的。 发出后,将为访问令牌的默认生存期分配一个随机值,范围介于 60-90 分钟之间(平均为 75 分钟)。 默认生存期也有所不同,具体取决于请求令牌的客户端应用程序、颁发令牌的资源,以及是否在租户中启用了条件访问。 有关详细信息,请参阅访问令牌生存期。
当客户端和资源同时支持 持续访问评估(CAE)时,令牌生存期可以自动扩展到 24-28 小时,如果可以安全地执行此操作。 这些长期令牌将近乎实时地撤销,以响应关键事件,例如帐户禁用和密码更改。 进一步了解 CAE 如何影响令牌的生命周期
SAML 令牌
SAML 令牌由许多基于 Web 的 SaaS 应用程序使用,可通过 Microsoft Entra ID 的 SAML2 协议终结点获得。 使用 WS-Federation 的应用程序也利用它们。 令牌的默认生存期为 1 小时。 从应用程序的角度来看,令牌的有效期由令牌中 <conditions …> 元素的 NotOnOrAfter 值指定。 令牌有效期过后,客户端必须发起新的身份验证请求。在使用单一登录 (SSO) 会话令牌的情况下,通常不需要交互式登录就可以满足该请求。
可以使用 AccessTokenLifetime 中的 TokenLifetimePolicy 参数更改 NotOnOrAfter 的值。 它会被设置为策略中配置的生存期(如果有),再加上 5 分钟的时钟偏差系数。
<SubjectConfirmationData> 元素中指定的主题确认的NotOnOrAfter属性不受令牌生存期配置的影响。
ID 令牌
ID 令牌将传递给网站和原生客户端。 ID 令牌包含有关用户资料的信息。 ID 令牌绑定到用户和客户端的特定组合。 在过期日期之前,ID 令牌保持有效。 通常,Web 应用程序会将应用程序中用户的会话生存期与针对该用户颁发的 ID 令牌的生存期进行匹配。 可以调整 ID 令牌的生存期,以控制 Web 应用程序会话过期的频率,以及要求用户通过 Microsoft 标识平台(无提示或交互方式)重新进行身份验证的频率。
可配置的令牌生存期属性
令牌生存期策略是一种策略对象,其中包含令牌生存期规则。 此策略控制该资源的访问令牌、SAML 令牌和 ID 令牌的有效期时间长短。 无法为刷新和会话令牌创建令牌生存期策略。 如果未设置策略,系统将强制实施默认生存期值。
访问令牌、ID 令牌和 SAML2 令牌生存期策略属性
减少访问令牌生存期有助于限制恶意参与者可以使用泄露的访问令牌或 ID 令牌的时间。 权衡的代价是对性能产生不利影响,因为必须更频繁地替换令牌。
有关示例,请参阅为 Web 登录创建策略。
访问令牌、ID 令牌和 SAML2 令牌的令牌生存期由以下策略属性控制:
- 属性:访问令牌生存期
-
策略属性字符串:
AccessTokenLifetime - 影响:访问令牌、ID 令牌、SAML2 令牌
-
默认:
- 访问令牌:根据请求令牌的客户端应用程序,此令牌会有所不同。 支持 CAE 的客户端在协商 CAE 感知会话时,可能接收长期有效的令牌(最长 28 小时)。
- ID 令牌、SAML2 令牌:一小时
-
最小值:10 分钟(
00:10:00) -
最大值:一天(
23:59:59)
注意
尽管名称上是这样,AccessTokenLifetime 实际上控制了访问令牌、ID 令牌和 SAML2 令牌的生存期。
策略评估和优先级
可以创建令牌生存期策略并将其分配到特定的应用程序和组织。 可将多个策略应用到特定的应用程序。 生效的令牌生存期策略遵循以下规则:
重要
对于令牌生存期策略, 组织级 策略优先于 应用程序级 策略。 如果应用级策略似乎未生效,请检查组织级策略是否存在。
- 如果将某个策略显式分配到组织,将强制实施该策略。
- 如果未将策略显式分配到组织,则强制实施分配到应用程序的策略。
- 如果未将策略分配到组织或应用程序对象,则会强制实施默认值。 (请参阅可配置的令牌生存期属性中的表格。)
令牌的有效性会在该令牌被使用时得到评估。 所访问的应用程序中具有最高优先级的策略会生效。
刷新令牌和会话令牌的令牌生存期策略(已停用)
重要
自 2021 年 1 月 30 日起,刷新和会话令牌生存期不再可通过令牌生存期策略进行配置。 Microsoft Entra ID 仅使用下面所述的默认值。 若要控制用户登录的频率,请改用 条件访问登录频率 。
如果有设置刷新或会话令牌属性的现有策略,则忽略这些属性。 新令牌始终使用默认配置颁发。
刷新和会话令牌默认值(不可配置)
下表记录了仍然有效的默认值。 无法通过令牌生存期策略更改这些值。
| 属性 | 策略属性字符串 | 默认 |
|---|---|---|
| 刷新令牌最大非活动时间 | MaxInactiveTime |
90 天 |
| 单因素刷新令牌的最大生存时间 | MaxAgeSingleFactor |
持续有效,直到被撤销 |
| 多因素刷新令牌最大有效期 | MaxAgeMultiFactor |
有效直至撤销 |
| 单因素会话令牌最大存续时间 | MaxAgeSessionSingleFactor |
直至被撤销 |
| 多因素会话令牌最大有效期 | MaxAgeSessionMultiFactor |
未经撤销 |
非持久性会话令牌的最大非活动时间为 24 小时;永久性会话令牌的最大非活动时间为 90 天。 当 SSO 会话令牌在其有效期内使用时,有效期将分别延长 24 小时或 90 天。
若要查找可能仍包含已停用刷新/会话令牌属性的现有策略,请使用 PowerShell cmdlet。
REST API 文档参考
小窍门
所有持续时间都使用 C# TimeSpan 格式化:hh:mm:ss。 最小值为 10 分钟 00:10:00 ,最大值为 23:59:59。
可以使用 Microsoft Graph 配置令牌生存期策略并将其分配给应用。 有关详细信息,请参阅 tokenLifetimePolicy 资源类型及其关联的方法。
Cmdlet 参考指南
以下是 Microsoft Graph PowerShell SDK 中的 cmdlet。
管理策略
可以使用以下命令来管理策略。
| Cmdlet (命令行工具) | 说明 |
|---|---|
| 新建-Mg策略令牌有效期策略 | 创建新策略。 |
| Get-MgPolicyTokenLifetimePolicy | 获取所有令牌生存期策略或指定的策略。 |
| Update-MgPolicyTokenLifetimePolicy 更新 Mg 策略令牌生存期策略 | 更新现有策略。 |
| Remove-MgPolicyTokenLifetimePolicy | 删除指定的策略。 |
应用程序策略
可以将以下 cmdlet 用于应用程序策略。
| Cmdlet (命令行工具) | 说明 |
|---|---|
| New-MgApplicationTokenLifetimePolicyByRef | 将指定的策略链接到应用程序。 |
| Get-MgApplicationTokenLifetimePolicyByRef | 获取分配给应用程序的策略。 |
| Remove-MgApplicationTokenLifetimePolicyByRef | 从应用程序中删除策略。 |
后续步骤
若要了解详细信息,请参阅令牌生存期配置示例。