检查SAML断言消息的真实性为SP

时间:2017-11-15 13:22:00

标签: saml saml-2.0

我们正在公共URL上共享我们的SP元数据,其中也包含我们的公钥和SSO URL(绑定)。我完全理解公钥是在各方之间自由共享的。但我只想了解未经授权的用户是否可以访问我们的公钥(因为这可以在公开的元数据中找到),并且知道我们公司的SSO的URL(也可以在我们公开的元数据中找到) ),他们能够自我验证吗?我如何确保SAML断言仅来自授权来源?

2 个答案:

答案 0 :(得分:1)

有人使用您的公钥会如何签署声明?他们肯定需要私人键。

这不仅仅是任何私钥 - 您的SP应该事先知道IdP的公钥(您不需要整个公众)键,主题名称和指纹应该足够了)。

然后,当一个断言来到SP时,它不仅验证签名本身,而且验证用于签署断言的证书。 SP通过将来自签名的证书信息与先前存储的关于有效IdP的公钥的信息进行比较来实现。

答案 1 :(得分:0)

SP应具有IdP的元数据,其中包括其签名证书。可以使用SP和IdP的元数据通过双向信任来保护SAML交换。 IdP通常会在AuthenticationStatement中签署SAMLResponse,并且SP会使用IdP元数据中的证书验证签名。此外,SP通常会将用户发送到IdP进行身份验证,因此SP是启动协议流的SP。