SP发起SSO场景下,应当何时向IdP重新发起身份验证?
什么时候需要重新触发SAML AuthnRequest
以下是标准场景下需要主动向IdP发起认证请求的时机:
- SP侧为用户创建的本地会话(如加密Session Cookie、SP侧签发的JWT等)过期时,这是最常见的触发场景。
- 校验到IdP下发的原始SAML断言中
SessionNotOnOrAfter(会话有效期截止)属性已到期时,根据SAML规范要求,必须停止使用过期断言,重新发起认证。 - 用户主动发起登出操作(含SP侧单点登出、IdP侧全局登出)后,用户再次访问应用时需要重新认证。
- 用户触发高敏感操作场景(如修改核心安全配置、大额支付操作等),可以在AuthnRequest中带上
ForceAuthn="true"参数强制要求IdP重新核验用户身份,即使用户在IdP侧仍有有效会话。 - SP检测到用户会话存在异常风险(如访问IP跨地区突变、设备指纹不匹配等)时,可以主动终止现有会话,触发重新认证。
是否需要每次REST调用都核验SAML Token的有效性
完全不需要,SAML协议的设计定位就不是用于单次接口请求的身份校验,原因如下:
- SAML断言本身体积较大,每次接口请求携带会带来不必要的传输开销,且SAML规范没有定义单次接口调用的凭证校验逻辑。
- 不可能每次接口请求都请求IdP侧核验SAML断言有效性,会导致接口性能雪崩。
标准的落地方式是:
SP在首次核验SAML断言有效后,自行向用户签发SP侧专属的会话凭证(比如加密的会话Cookie、短有效期JWT),后续所有REST请求仅校验这个SP自签的会话凭证即可,仅需要保证该会话凭证的有效期不超过原始SAML断言的SessionNotOnOrAfter时间即可,会话到期后再重新走SAML认证流程。
内容的提问来源于stack exchange,提问作者jplefebvre2
相关产品推荐
相关产品推荐

