使用自签名证书进行 Saml 2 断言
Posted
技术标签:
【中文标题】使用自签名证书进行 Saml 2 断言【英文标题】:Using self-signed certificate for Saml 2 assertion 【发布时间】:2016-01-15 11:13:23 【问题描述】:我正在处理 Saml 2 SSO 的 Idp 方面,作为 IdP,我们应该向 SP 发布一个断言,它将由 IdP 启动。 断言中有一个名为 x509certificate 的字段。 我的第一个问题是这个字段的公钥本身还是由 CA(证书颁发机构)签名的公钥? 我的第二个问题是,如果它是由 CA 签名的公钥,那么自签名是安全的还是由真正的 CA 签名更好? 我的第三个问题是,我们向 SP 提供 Idp 元数据是否更好,或者在任何断言请求中拥有证书更安全,或者两者兼而有之? 谢谢
【问题讨论】:
【参考方案1】:我假设您指的是嵌入在 SAML 断言中的 XML 签名中的 X.509 证书。如果是这样,这是可用于验证 XML 签名的 base-64 编码的 X.509 证书。它是可选的,但通常包括在内。
您应该使用 CA 颁发的证书。 SP 与您的 IdP 具有信任关系。 CA 颁发的证书可确保签署和发送 SAML 断言的是您的 IdP,而不是欺骗您的人。
您通常会向 SP 提供您的元数据,其中包括您的证书。 SP 将使用此证书来验证您的 XML 签名。但是,正如我所说,将证书包含在 XML 签名中也没有什么坏处,尽管它不太可能用于实际的签名验证。
【讨论】:
谢谢,如果我们使用安全通道(如 USB)提供 SP,是否还需要第三方 CA,或者我们可以自行签名? 这真的变成了一个商业决策。我仍然认为您应该使用 CA 颁发的证书。自签名证书实际上仅用于测试目的。 CA 颁发的证书并不昂贵。 如果您通过安全通道交换证书,我认为没有理由使用 CA 签名证书。使用 CA 的唯一原因是验证证书的有效性。如果您通过将其与之前交换的进行比较来做到这一点,则无需使用 CA 对其进行验证,因此根本不需要 CS。以上是关于使用自签名证书进行 Saml 2 断言的主要内容,如果未能解决你的问题,请参考以下文章
SAML SP 元数据:自签名证书或 CA 证书,最佳实践是啥?