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

Azure SAML响应中Not Before值来源及SSO验证失败排查

Azure SSO Not Before验证失败问题解析

一、Not Before值的来源

Not Before对应SAML令牌中的nbf(Not Before)声明,是Azure AD在生成SSO响应令牌时自动设置的,代表令牌最早可以被使用的时间。Azure AD服务器采用UTC时区,你看到的EST时间需要转换为UTC来对比:

你的调试信息显示:

My request sent this IssueInstant="2023-01-26T09:55:06Z"

The response return with Not Before 01/26/2023 12:54 aa EST failed
                         Not On Or After 01/26/2023 01:59 aa EST Passed

将Not Before 01/26/2023 12:54 EST转换为UTC是2023-01-26T17:54:00Z(EST为UTC-5时区),而你发送的IssueInstant是UTC的09:55,远早于令牌生效时间,这就是验证失败的直接原因。

二、修改IssueInstant无效的原因

IssueInstant是你的请求内携带的标识请求发起时间的参数,它不会影响Azure AD生成令牌时设置的Not Before值。你修改这个参数只会改变请求自身的时间标记,但Azure返回的令牌生效时间是由Azure AD服务器的当前时间决定的,两者无关联。

核心问题出在你的PST时区服务器(UTC-8)与Azure AD的UTC时间存在偏差:当你的服务器验证令牌时,本地时间还未达到Azure AD设定的令牌生效时间(Not Before),因此验证失败。

三、在Azure中排查Not Before相关内容

  • 查看原始SAML响应:用SAML Tracer等浏览器插件捕获SSO流程中的SAML响应,在响应的<saml:Conditions>节点下,能直接看到NotBefore和NotOnOrAfter的原始值(通常为UTC格式)。
  • 检查应用令牌配置:登录Azure门户,进入Azure Active Directory > 企业应用 > 你的SSO应用 > 单点登录,查看用户属性和声明配置;也可进入对应应用注册的令牌配置页面,确认令牌生命周期的默认设置(Azure AD默认令牌有效期1小时,Not Before一般为令牌生成的时间)。
  • 同步服务器时间:确保你的PST服务器已正确同步NTP服务,与UTC时间的误差控制在5分钟以内(SAML协议默认允许的时间偏差范围)。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.03 14:25:30