spring - "Signature did not validate against the credential' s key ”,Junos 作为 IdP

标签 spring spring-security saml-2.0 spring-saml

我已经使用 Spring SAML 实现了 SSO,并且一切正常,可以与 idp.ssocircle.com 进行交互。

现在我正在尝试使用另一个身份提供者。我已经下载了 IdP 的元数据并将其链接到我的 spring XML 配置中。我还将服务提供者的元数据上传到 iDP 并将其链接到 spring XML 配置中。

我被重定向到 IdP 的登录页面,并且可以成功输入我的凭据。但是会出现这样的错误“签名未根据凭据的 key 进行验证”。

还有另一个 stackoverflow 帖子描述了一个类似的问题,参见 "HTTP Status 401 - Authentication Failed: Incoming SAML message is invalid" with Salesforce as IdP for implementating SSO

但是我在遵循解决方案时遇到了问题,因为 Fiddler 捕获的我的 SAML 响应不包含像“X509Certificate”这样的元素。

编辑(!):但我不得不说,我的身份提供者的元数据在“ds:keyInfo”中包含一个类似“ds:X509Certificate”的元素,其中包含一些内容。但是还有另一个空的“ds:keyInfo”-Element 和一个空的“ds:X509Data”-Element。

身份提供者的配置有问题吗?

谁能告诉我这里发生了什么?

完整的日志文件:https://drive.google.com/file/d/0B3RlRCEjz-cvZGQ5aldzaUc0blE/edit?usp=sharing

提前致谢,

和我

最佳答案

看来Response消息使用与 IdP 元数据中包含的证书不同的证书进行签名。您应该让您的 IdP 告诉您他们用于签名的证书并将它们添加到他们的元数据文件中。根据您所说的,也可能是元数据文件不完整或已损坏。

另一种选择是将他们为您提供的证书添加到 samlKeystore.jks (并记住别名)。然后定义别名为 signingKeyExtendedMetadata Spring 配置中的 IdP 元数据定义。您可以找到有关使用 ExtendedMetadata 的详细信息在 Spring SAML manual .

响应消息中未包含 key 这一事实并没有错,Spring SAML 从元数据和 ExtendedMetadata 配置中知道要使用哪些 key 。

关于spring - "Signature did not validate against the credential' s key ”,Junos 作为 IdP,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24782638/

相关文章:

spring - 将 Spring Boot 升级到 3.0.6 后,在 Mac M1 中无法从 Webclient 解析 oauth 端点

authentication - 让用户输入特定页面的凭据

java - 使用 Jaas 配置进行 Kafka 身份验证

spring-security - 配置 saml-sample (SP) 以与 Okta (IdP) 一起使用

.net - IDP 和 SP 之间无限重定向循环的原因

mobile - 带有移动客户端的 Saml SSO

single-sign-on - WSO2 单点注销实现

xml - 在Spring XML Config文件中从其他子项目加载sql脚本

java - SpringBootTest - 考虑在配置中定义类型为 'java.lang.String' 的 bean

java - Web 应用程序、集群 tomcat 和 mongoDB - 如何实现持久队列