You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

服务主体默认令牌生命周期未更改,如何设置为30分钟?

解决Azure AD令牌有效期设置30分钟未生效的问题

可能原因及排查步骤

1. 验证策略是否成功绑定到服务主体

首先确认你创建的Token Lifetime Policy已正确关联目标服务主体:

# 替换为你的服务主体ObjectId
Get-AzureADServicePrincipalPolicy -Id <service-principal-object-id>

如果输出中没有你创建的Valid 30min策略,重新执行绑定命令:

Add-AzureADServicePrincipalPolicy -Id $sp.ObjectId -RefObjectId $policy.Id

2. 确认令牌版本兼容性

旧版Token Lifetime Policy仅对v1.0令牌生效,若你的应用使用v2.0令牌,该策略不会起作用:

  • 登录Azure AD门户,找到目标应用注册
  • 查看应用清单中的accessTokenAcceptedVersion字段:
    • 若值为1:继续使用Token Lifetime Policy,确保后续获取的是v1.0令牌
    • 若值为2:需通过条件访问策略调整v2.0令牌有效期

3. 清除令牌缓存

你获取的可能是缓存中的旧令牌,需强制重新获取:

  • 注销应用并重新登录
  • 若使用代码调用,清除客户端的令牌缓存(比如MSAL库中的RemoveAccount方法)

4. 检查是否存在优先级更高的策略

若组织内有其他Token Lifetime Policy(比如组织默认策略),可能覆盖你的设置:

Get-AzureADPolicy -Filter "Type eq 'TokenLifetimePolicy'"

确认你的策略没有被其他优先级更高的策略覆盖,必要时调整策略优先级或删除冲突策略

v2.0应用的解决方案(accessTokenAcceptedVersion=2)

对于v2.0令牌,需通过条件访问策略设置有效期:

  1. 进入Azure AD门户 -> 安全 -> 条件访问
  2. 创建新策略,命名为「30分钟访问令牌有效期」
  3. 分配:选择需要生效的用户/组
  4. 云应用或操作:选择目标服务主体对应的应用
  5. 会话:展开后设置「访问令牌生存期」为00:30:00
  6. 启用策略并保存

客户端凭据流的特殊情况

若使用客户端凭据流获取令牌,需确保策略绑定到服务主体,且获取的是v1.0令牌(请求https://login.microsoftonline.com/{tenant-id}/oauth2/token端点);v2.0端点的客户端凭据令牌默认有效期为1小时,需通过条件访问策略调整。

内容的提问来源于stack exchange,提问作者user000682

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.11 02:05:23