设置基于SAML的SSO时为什么需要IdP证书指纹

时间:2018-10-09 19:21:51

标签: single-sign-on saml

前一段时间,我致力于在Web应用程序中设置SSO用户身份验证。特定的IdP是一台ADFS服务器,但我认为这不是很重要。

在配置应用程序的SSO设置时,我注意到需要IdP证书的指纹,而不是证书本身。现在,据我所知,应用程序使用指纹来验证颁发的SAML令牌上的IdP签名。

问题是应用程序如何仅使用证书指纹来验证签名?它是否不需要证书的公用密钥,它是证书本身的一部分,而不是指纹的一部分?此签名验证过程如何工作?

1 个答案:

答案 0 :(得分:1)

指纹在发送方和接收方之间进行带外交换,并在接收端进行配置。它使用发件人用来签名发送的SAML消息的公钥唯一地标识证书。

然后可以将证书本身作为SAML消息本身的一部分进行带内发送。接收者将比较该证书的指纹和所存储的指纹,以确认正在处理适当的发送者和关联的密钥,然后再用该密钥对SAML消息进行密码验证。

这具有以下优点:仅需要预先带外交换一条小消息。这可能是有用的,例如当通过电话线读出时,缺点是需要随每条消息一起发送完整的证书(原则上至少是第一条消息...),这会增加每条消息的大小。