我们的应用程序将SAML2 SSO集成到3个不同的(Shibboleth)IdP' s。我们正在尝试添加第4个(也是Shibboleth),但遇到了一些问题,因为我们的应用程序希望所有SSO响应都可以验证签名。这些其他3个正在签署他们的回复,但第4个不是,并且犹豫是否添加自定义配置来强制执行我们的应用程序的签名。
从技术上讲,我可以修改我们的应用程序以接受未签名的SSO响应,但我想知道我是否应该这样做。允许未签名的SSO响应有哪些缺陷?是否存在安全漏洞?
是否有任何Shibboleth(或其他SAML2 SSO)文档建议将回复作为最佳做法?
答案 0 :(得分:8)
遵循SAML 2.0规范的IdP的唯一要求是对断言进行数字签名(参见http://docs.oasis-open.org/security/saml/v2.0/saml-profiles-2.0-os.pdf - 第4.1.3.5节)。这足以说明来自IdP的SSO操作是否应该被与其联合的SP信任。
签署外部响应是可选的。它有一些安全上的好处,例如阻止消息插入或修改(参见http://docs.oasis-open.org/security/saml/v2.0/saml-sec-consider-2.0-os.pdf中的6.1.3 / 6.1.5节) - 但实际上它经常被省略,而不是依赖于SSL / TLS。
答案 1 :(得分:3)
签署答复的重点是证明他们确实来自发行人。否则,“中间人”可以改变属性,例如让自己访问应用程序。
ADFS v2.0默认情况下使用SAML签署所有响应令牌。没办法把它关掉。