为什么 SAML 服务提供商应该信任 SAML 响应?

Why should a SAML service provider trust a SAML response?

http://en.wikipedia.org/wiki/SAML_2.0 阅读,我试图了解保证在流程的第 5 步中发送的 SAMLResponse 的真实性的机制。

据我了解,SAML 旨在让服务提供商可以信任身份提供商进行身份验证,而无需直接联系它。然而,这依赖于用户代理将身份提供者的响应重新传输回服务提供者。在我看来,受感染的代理可能 return 伪造经过验证的响应。服务提供商如何在不尝试联系身份提供商的情况下验证这一点?

谢谢你的时间。

好问题!

这类似于银行验证支票签名的方式;他们会将文件上个人签名的几个迭代与兑现支票的签名进行比较——只要匹配,他们就可以相信支票是由预期的个人签名的。

它与 SAML 的工作方式相同,除了准确度必须为 100% - SAML 负载使用身份提供者和服务提供者共享和信任的证书签名。

为了确保响应的真实性,您需要确保用于签名的密钥与您为该特定信任存储的密钥相匹配,否则不应接受响应有效。

这是基本摘要,但是,如果您需要更多详细信息,我在 SSO\SAML 时已将 this question 加入书签,我发现它有助于解释其工作方式。