我们在我们的 Java 应用程序中使用Spring Security SAML
(v1.0.3) 用于带有 IDP 的 SAML SSO。
要求:仅接受来自 IDP 的签名 SAML 响应消息,如果 SAML 响应未签名,则抛出异常。
实际结果:即使 SAML 登录响应消息中完全缺少签名信息,它也会被接受,并且 Spring Security SAML 库不会抛出异常。
观察:
- 如果 SAML 登录响应消息中存在错误的签名信息,则会引发正确的异常。
- 对于注销消息,我们在扩展元数据生成器中有属性
requireLogoutRequestSigned
,requireLogoutResponseSigned
用于控制是否应签署注销请求和响应。 - 对于登录响应消息,我们有一个属性
wantAssertionSigned
来指示 SP 是否需要签名断言。
问题:
- 框架中是否有任何属性或方法
Spring Security SAML
使 SP 只能接受来自 IDP 的签名登录响应(在消息级别)? - 据我了解,SAML 响应消息和断言的签名是两件不同的事情。这是对的吗?该属性
wantAssertionSigned
仅启用签名断言而不启用消息。