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

Spring Security 5.7.1 SAML断言签名校验失败 5.4.2版本正常

问题原因

该签名校验错误和现有application.yml中配置的实体ID、证书路径、单点登录地址无关,是Spring Security 5.7版本SAML2模块默认签名校验逻辑变更导致的:

  • 5.4.2版本默认仅校验SAML报文内层的Assertion(断言)节点签名
  • 5.7.0及之后版本默认优先校验SAML报文外层的Response(响应)节点签名,只要外层节点携带签名元素就会强制走校验流程
    当前使用的Okta默认SAML配置下,外层响应签名和内层断言签名使用的密钥不一致,或外层响应未做有效签名,就会抛出Invalid signature for object [id6...]错误。
解决方案

两种方案选其一即可,无需全量调整现有配置:

  • 兼容旧版本校验逻辑(快速修复)
    在现有身份提供商配置块下补充签名校验范围配置,忽略外层响应签名,仅保留断言签名校验:
    spring:
      security:
        saml2:
          relyingparty:
            registration:
              okta-saml:
                identityprovider:
                  # 原有entity-id、verification、singlesignon配置全部保留
                  signatures:
                    verify-response-signature: false
    
  • 遵循新版本默认安全规则
    登录Okta的SAML应用管理后台,下载外层SAML响应对应的签名证书,存入项目资源目录,将该证书补充到校验凭证列表即可:
    verification:
      credentials:
       - certificate-location: "classpath:saml-certificate/okta.crt" # 原有断言签名证书
       - certificate-location: "classpath:saml-certificate/okta-response.crt" # 新增响应签名证书
    

配置修改完成后重启服务,重新发起SAML登录流程即可恢复正常。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.30 04:42:17