【发布时间】:2015-01-21 17:15:00
【问题描述】:
我能够使用 Spring Security SAML 扩展让我的应用程序充当具有 IDP SSOCIRCLE 的 SP。我的客户有以下要求:
1.对断言进行签名: IDP 发送的断言已签名并且工作正常。
2。签署请求/响应: 使用 SSO Circle 生成元数据文件时。我将选项 AuthnRequestsSigned 选择为 true。我将我的 SP 元数据上传到 SSO Circle IDP。 SP 元数据具有以下值为 true:AuthnRequestsSigned 和 WantAssertionsSigned。运行应用程序时,我的请求和收到的响应都没有签名。
我在完成第二个要求时遇到问题。我是 SAML 和一般安全性的新手。我在这里错过了什么?
更新
考虑到 Vladimir 的 cmets。我将绑定更改为 HTTP-Post,所以现在我发送带有所示签名的 SAML 请求。 通过执行以下操作,我能够发送使用我的私钥(不是示例项目提供的密钥)签名的请求:
- 使用 keygen 工具创建密钥库、CSR 和公钥证书。
- 更新我的 SP 元数据文件中的数字签名部分以获取新证书
- 从 IDP SSOCIRCLE 中删除旧的 SP 元数据文件并添加新的 SP 元数据文件
- 更改 spring 配置以使 JKSKeyManager 使用我使用新别名和密码创建的新密钥库。
我现在需要做的是让 IDP(SSOCIRCLE) 将响应发送到 一种。响应已签名 湾。断言已签名
如何才能做到这一点?我需要做哪些改变来处理这个问题,鉴于 响应的签名应该不同于断言的签名。 谢谢。
【问题讨论】:
-
你用的是什么绑定?
-
用于发送请求的 HTTP 重定向绑定和用于响应的 HTTP POST 绑定。
标签: spring-security x509certificate saml-2.0 xml-signature spring-saml