如何延长Azure SSO登录的Access Token过期时间?
解决Azure AD应用注册修改Access Token过期时间的Manifest错误
问题场景
尝试通过修改Azure AD应用注册的Manifest来延长Access Token过期时间,操作步骤如下:
- 登录Azure门户
- 导航至Azure Active Directory
- 进入应用注册并选择目标应用
- 打开Manifest标签页
- 添加了一段包含
accessToken对象的JSON配置,内容如下:
"accessToken": { "accessTokenType": "jwt", "value": null, "userFlowType": "UserFlows/SignUpSignIn", "userFlowVersion": 1, "accessTokenLifetime": 3600, "includeEmailInIdToken": false, "scope": [ "openid", "profile", "email", "offline_access" ] }
保存时触发错误:
更新XXXXXX应用失败。错误详情:发现一个无类型名称的值,且无可用的预期类型。当指定模型时,负载中的每个值必须具有类型,该类型可在负载中指定、由调用方显式指定或从父值隐式推断。[/axcDaTlIjTKt3x3K7n5ps]
错误原因
Azure AD应用注册的Manifest规范中不存在顶层的accessToken对象属性,你添加的这段配置属于错误结构,超出了Manifest的合法字段范围,导致验证器无法识别该对象类型,从而抛出错误。
正确解决方案
方案1:直接在Manifest中设置令牌有效期(适用于默认范围内的时长,最长1小时)
在Manifest的顶层节点直接添加或修改accessTokenLifetime属性,值为需要的秒数(示例为3600秒,即1小时),正确的配置片段如下:
// 与其他顶层属性(如optionalClaims、keyCredentials等)同级 "accessTokenLifetime": 3600,
修改后保存Manifest即可生效。
方案2:自定义令牌生命周期策略(适用于超过1小时的时长需求)
如果需要设置超过默认最长限制的有效期,需创建自定义令牌生命周期策略并关联到应用:
- 在Azure Active Directory中,导航至令牌生命周期策略(Token lifetime policies)
- 新建策略,设置
AccessTokenLifetime为目标秒数 - 将该策略关联到你的目标应用注册
注意事项
- Azure AD对Access Token的最长有效期有默认限制,普通应用默认最长为1小时,如需更长时长需通过自定义策略申请(部分场景可能受限于合规要求)
- 修改Manifest时需保证JSON格式正确,注意逗号分隔符和括号匹配,避免语法错误
内容的提问来源于stack exchange,提问作者Damerla Prasanna
相关产品推荐
相关产品推荐

