简单签名验证(没有请求派生凭证)失败

时间:2017-11-14 15:46:28

标签: spring spring-saml

我有一个现有的spring webapp,它使用SAML让用户通过第三方网站登录。用户登录第三方站点并使用SAML单点登录到我的应用程序。第三方网站最近让他们的证书过期,他们发给我一个新的.crt文件,以导入我的java密钥库。我使用以下命令来更新我的java密钥库:

keytool -delete -alias thirdPartyCertificate -keystore myKeystore.jks
keytool -import -trustcacerts -alias thirdPartyCertificate -file 2017-third-party-certificate.crt -keystore myKeystore.jks

两个命令都成功完成(我可以在密钥库上运行-list,看到新证书存在且未过期)。但是,在我重新启动我的java webserver之后,单点登录无效。它抛出了以下两个警告,然后无法登录用户:

WARN  org.opensaml.common.binding.security.BaseSAMLSimpleSignatureSecurityPolicyRule - Simple signature validation (with no request-derived credentials) failed
WARN  org.opensaml.common.binding.security.BaseSAMLSimpleSignatureSecurityPolicyRule - Validation of request simple signature failed for context issuer: <certificate_url_omitted>

什么会导致证书验证失败?我不认为他们的证书是坏的,因为其他几个webapp维护者能够成功使用新证书。我在安装新证书时是否有一些步骤?

1 个答案:

答案 0 :(得分:0)

您需要将 signingKey 属性设置为您在IDP的ExtendedMetadata中导入的证书的别名。见https://docs.spring.io/spring-security-saml/docs/1.0.x-SNAPSHOT/reference/htmlsingle/#configuration-key-management(8.2.1)