我是SAML的新手 . 我们已经将okta SAML与我们的 spring 应用程序集成在一起进行单点登录 . 该应用程序在localhost上运行正常,但在我们的服务器上部署时,它会给出以下例外:传入的SAML消息无效org.opensaml.ws.security.SecurityPolicyException:协议消息签名的验证失败

我将简要介绍我整合过程 . 我使用了示例应用程序中的配置 . 我创建了我的密钥库,将okta的公共证书添加到密钥库 . 现在为

<bean id="keyManager" class="org.springframework.security.saml.key.JKSKeyManager">

我们需要一个私钥 . 对于私钥我使用openssl工具生成私钥openssl req -x509 -sha256 -nodes -days 365 -newkey rsa:2048 -keyout privateKey.key -out certificate.crt从这个证书和私钥生成一个.p12文件并将其导入密钥库 . 我的配置是

<bean id="keyManager" class="org.springframework.security.saml.key.JKSKeyManager">
    <constructor-arg value="classpath:security/samlKeystore.jks"/>
    <constructor-arg type="java.lang.String" value="myPswd"/>
    <constructor-arg>
        <map>
            <entry key="myprivateKeyAlias" value="myPswd"/>
        </map>
    </constructor-arg>
    <constructor-arg type="java.lang.String" value="myprivateKeyAlias"/>
</bean>

但是在服务器上部署时仍然会出现相同的错误 . 我做了一些研究,并在一些链接上发现这很可能意味着公钥(SAML MetaData中的证书的一部分...... KeyInfo“签名”元素)与用于签名的私钥不匹配信息 . 我不知道如何解决此异常 .