证书如何使用SP keystore spring saml

时间:2015-07-03 07:25:10

标签: spring-saml

我目前正在实施Spring SAMl来配置我的SP。我收到了IDP的元数据XML,我把它放在元数据文件夹中。 1.现在,在启动时我得到了Exception是没有配置IDP,所以发现它是由于证书无效。现在我只需将证书导入 samlKeystore.jks 并将metadataTrustCheck = false放入 ExtendedMetadataDelegate bean中,这有助于我启动SP而不会出现任何错误,而且我正在调整重定向从IDP到SP,我可以实现我的需要 2.现在我刚刚删除了我在 samlKeystore.jks 中保存的IDP提供的证书,然后重新启动应用程序,IDP之间的通信也没有问题和SP。

我现在有一些需要帮助才能理解的查询。 提供给我的证书从我导入到我的 samlKeystore.jks 的IDP,这些都有用,因为响应带有来自IDP的签名和证书。为了验证响应,我们应该在响应中使用证书和签名。

我是否期望执行metadataTrustCheck = true并更正IDP元数据,如果是,如何更正它,因为我有证书链。

1 个答案:

答案 0 :(得分:7)

您从IDP收到的元数据文档包含IDP将用于对将向SP发送的SAML消息进行数字签名的证书。无需将这些导入到samlKeystore.jks,因为它们已经存在于元数据中。

元数据文档本身也可以进行数字签名(以确保没有人在它到达之前对其进行修改)。现在,当metadataTrustCheck = true Spring SAML将尝试验证此签名是否有效时,为了做到这一点,它需要知道是否信任用于创建签名的证书。

因此,您需要向Spring SAML传达您信任的证书,以便签署元数据文档 - 您可以通过将它们导入samlKeystore.jks来实现。

如果您相信您拥有的元数据文档是正确的,只需禁用metadataTrustCheck并且不要将任何公共证书导入samlKeystore - 只需依赖元数据文档本身的内容即可。