Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/svg/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Single sign on 为什么在设置基于SAML的SSO时需要IdP证书指纹_Single Sign On_Saml - Fatal编程技术网

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

Single sign on 为什么在设置基于SAML的SSO时需要IdP证书指纹,single-sign-on,saml,Single Sign On,Saml,不久前,我曾在web应用程序中设置SSO用户身份验证。特定的IdP是ADFS服务器,但我认为这并不重要 配置应用程序的SSO设置时,我注意到需要IdP证书的指纹,但不需要证书本身。现在,据我所知,应用程序使用指纹验证颁发的SAML令牌上的IdP签名 问题是应用程序如何仅使用证书指纹验证签名?它不需要证书的公钥吗?公钥是证书本身的一部分,而不是指纹的一部分?此签名验证过程如何工作?指纹在发送方和接收方之间进行带外交换,并在接收端进行配置。它使用公钥唯一地标识证书,发送方使用公钥对其发送的SAML消

不久前,我曾在web应用程序中设置SSO用户身份验证。特定的IdP是ADFS服务器,但我认为这并不重要

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


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

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

然后,证书本身可以作为SAML消息本身的一部分在频带中发送。接收方将该证书的指纹与存储的指纹进行比较,以确认在使用该密钥对SAML消息进行加密验证之前,它正在处理适当的发送方和相关密钥

这样做的优点是,只需事先在带外交换一条小消息。例如,当通过电话线读取时,这可能很有用,但其缺点是需要随每条消息一起发送完整的证书(原则上至少是第一条消息…),这会增加每条消息的大小