【发布时间】:2020-01-20 15:07:28
【问题描述】:
上下文:我正在研究 SAML 服务提供者的实现。我们正在实现 SAML Web SSO 配置文件,其中包含用于生成 AuthnRequests 的 HTTP-Redirect 绑定和用于接受 SamlResponses 的 HTTP-Post 绑定(Dropbox for Business 等流行产品使用的典型设置)。我们的 SP 端点将可供网络上的任何人公开访问,我们的断言消费者服务 URL 是 HTTPS。
SAML 规范对在 SamlResponse 消息中签名断言非常清楚:这是强制性的。但是,SAML 规范并不清楚签署 SamlResponse 的封闭 Response 元素。它说它可以签名,并且签名必须在存在时进行验证。但是接下来还有这句话:
当包含断言的响应消息通过用户的网络传递给依赖方时 浏览器(例如使用 HTTP POST 绑定),那么为了确保消息完整性,它是 要求使用 XML 签名对响应消息进行数字签名
Spring Security SAML 库does NOT 要求存在此签名。 SSOCircle SAML 测试套件对于需要它的实现失败(SSOCircle 在“肯定”测试中使用没有它的 SamlResponses)。
那么,Web SSO 配置文件中是否需要它,为什么?
【问题讨论】:
标签: saml saml-2.0 spring-saml