SAML2元数据-多个签名证书

Dan*_*tto 7 adfs saml shibboleth service-provider

我正在查看SAML IdP的元数据,它列出了三个唯一的证书-2个签名和1个加密。

...   
<md:KeyDescriptor use="signing">
<ds:KeyInfo xmlns:ds="http://www.w3.org/2000/09/xmldsig#">
    <ds:X509Data>
        <ds:X509Certificate>
        </ds:X509Certificate>
    </ds:X509Data>
</ds:KeyInfo>
</md:KeyDescriptor>
<md:KeyDescriptor use="signing">
<ds:KeyInfo xmlns:ds="http://www.w3.org/2000/09/xmldsig#">
    <ds:X509Data>
        <ds:X509Certificate>
        </ds:X509Certificate>
    </ds:X509Data>
</ds:KeyInfo>
</md:KeyDescriptor>
<md:KeyDescriptor use="encryption">
<ds:KeyInfo xmlns:ds="http://www.w3.org/2000/09/xmldsig#">
    <ds:X509Data>
        <ds:X509Certificate>
        </ds:X509Certificate>
    </ds:X509Data>
</ds:KeyInfo>
</md:KeyDescriptor>
...
Run Code Online (Sandbox Code Playgroud)

我知道为什么它列出了签名和加密证书,但是如何确定在服务提供商中使用哪个签名证书?为什么根本没有两个签名证书?

提前致谢!

And*_*bel 10

当IDP更改其签名证书时,它首先与元数据中的旧证书并行发布新证书。当idp实际上切换到使用新证书时,所有SP都必须知道新证书,否则它们将无法验证签名。

作为SP,您不知道IDP在此过程中的位置,因此您必须检查签名是否对列出的两个证书中的任何一个进行验证。