SAML 2.0 SP元数据:目的和证书的使用

时间:2014-09-10 17:52:45

标签: metadata saml-2.0 service-provider

以下是SP元数据的一部分。

参考:Metadata for the OASIS Security Assertion Markup Language (SAML) V2.0

...   
<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>
...

在签名和加密证书中选择相同(或不同)证书有什么好处吗?

在此处签署证书的目的是什么?

如果邮件是通过https发送的,则提供传输层加密。我们还需要在这里加入加密证书吗?

1 个答案:

答案 0 :(得分:5)

在SAML 2.0中,Web SSO的元数据提供程序通常会为签名和加密使用声明相同的证书。

有些使用情况下使用不同的键是有意义的 - 例如当SP本身不应该能够解密IDP提供的数据时(例如nameID或属性),但这只能由断言的最终接收者完成;或者当另一方提供用于创建断言的内容而非实际创建SAML消息的一方时 - 但这些用例很少并且与Web SSO之外的其他配置文件更相关。

包含签名证书是为了通知用户有关如何验证元数据发布者提供的消息的元数据。例如,当SP从IDP收到消息时,它使用IDP元数据中定义的签名证书,以验证消息是否是由IDP创建的,并且在传输过程中未被篡改。

您通常不需要包含加密证书,以防在传输层上进行加密,并且您不对消息级别(例如整个消息,断言,名称ID或属性)执行任何加密。