Azure Entra ID令牌端点签发过期令牌问题求助
Azure AD混合认证流程ID Token时间异常排查求助
我们有一个支持Azure单点登录(Single Sign-On)的Web应用,已在Azure AD完成应用注册,采用遵循OIDC标准的混合认证流程。该流程在多个租户的应用注册中均测试通过,但在某一特定租户内,所有应用注册都出现了问题,且该租户未自定义令牌生命周期。
我们使用的令牌签发端点为:https://login.microsoftonline.com/{tenantId}/oauth2/v2.0/token(单租户应用注册)。
流程中需要先验证ID Token,我们采用NodeJS的jsonwebtoken包进行验证,但令牌始终验证失败,问题出在令牌载荷的iat(签发时间)和exp(过期时间)属性异常。
示例令牌载荷如下:
{ ..., "iat": 1695209618, "nbf": 1695209618, "exp": 1695209918, ..., "auth_time": 1695209915, ... }
该令牌的请求时间为1695209915,比iat晚近5分钟,相当于端点签发的令牌“提前”了5分钟生成;且令牌到达服务器时已过期(示例中令牌于1695209919收到,已超过exp时间)。
异常现象总结
- 令牌签发时存在5分钟时差
iat始终早于auth_time- 令牌到达服务器时已过期
- 令牌生命周期仅5分钟(根据Azure文档,ID Token最小生命周期为10分钟)
已尝试的操作
- 重新注册应用
- 反复检查所有端点与客户端凭据
- 仔细分析令牌内容
希望能得到Azure身份平台资深用户的指导与建议,排查问题原因。
内容的提问来源于stack exchange,提问作者Lamer217
相关产品推荐
相关产品推荐

