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

如何修改Azure AD B2C的Token exp声明值并设置1小时有效期?

如何在Azure中创建有效期为1小时的JWT令牌?

我帮你梳理下具体的解决步骤,针对你遇到的“门户显示60分钟但设置未生效”的问题,大概率是设置位置不对或者有其他策略覆盖,你可以按下面的步骤排查:

一、确认你修改的是对应令牌的正确设置项

登录Azure门户后,按以下路径操作:

  • 进入Azure Active Directory → 应用注册,找到你的目标应用。
  • 切换到令牌配置选项卡:
    • 如果还没添加过令牌设置,点击“添加配置”,选择你要设置的令牌类型(访问令牌/ID令牌),然后把“生命周期(分钟)”设为60,保存。
    • 如果已经有对应的配置,点击编辑按钮,直接修改生命周期为60后保存。
    • 划重点:访问令牌和ID令牌是分开设置的,别只改其中一个哦!

二、检查是否有全局/条件访问策略在搞事情

有时候全局策略会覆盖单个应用的设置,你可以检查这两个地方:

  • 进入Azure Active Directory → 安全性 → 条件访问,看看有没有针对该应用的策略,限制了令牌的有效期。如果有的话,调整对应策略的会话超时设置。
  • 另外,去Azure AD → 企业应用 → 找到你的应用 → 属性,查看“会话超时”选项,这个也可能影响令牌的实际有效期。

三、修改后一定要重新获取令牌!

很多人踩过这个坑:修改完设置后,用之前的旧令牌测试,当然还是原来的有效期。你需要重新发起授权请求(比如授权码流重新拿授权码换令牌,客户端凭据流重新调用令牌接口),新生成的令牌才会应用新的生命周期。

四、如果是用Azure AD B2C自定义策略的情况

要是你是通过B2C自定义策略颁发令牌,那得修改策略XML文件:
找到<TechnicalProfile>里的JwtIssuer节点,添加或修改AccessTokenLifetime参数:

<TechnicalProfile Id="JwtIssuer">
  <Metadata>
    <Item Key="AccessTokenLifetime">PT1H</Item> <!-- PT1H代表1小时,时间格式遵循ISO 8601 -->
  </Metadata>
</TechnicalProfile>

修改完后重新上传策略到Azure B2C,再测试新令牌。

五、验证令牌是否生效

拿到新令牌后,用本地的JWT解码工具(别用在线工具,避免泄露敏感信息)查看exp(过期时间)和iat(签发时间)字段,计算两者的时间差,确认是不是刚好3600秒(1小时)。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.19 09:57:31