certificate - SAML 签名证书 - CA 签名与自签名

标签 certificate single-sign-on saml x509certificate saml-2.0

我是 SSO 实现工程师,但最近发现很难说服 InfoSec 团队使用自签名证书与 CA 签名证书来签署 SAML 断言。

由于 CA 签名机构不再颁发有效期超过 1 年的证书,每年协调、指导和更新 SP 端的 SAML 证书已成为一项艰巨的任务。

我知道不需要 CA 证书来签署 SAML 断言,但我必须说服使用具有 3 年有效期的自签名证书或其他证书。

  1. 是否有任何 CA 可以为我们提供 3 年期 SAML CA 签名证书?

  2. 如果不是 1,什么是让 InfoSec 明白不需要 CA 签名的证书,但自签名证书就可以,没有安全问题的可靠方法。寻找一些建议。

提前致谢。

最佳答案

许多 SAML2 提供商使用自己的自签名证书来签署断言(例如 Microsoft Azure)。服务提供商根据证书的可信度来决定是否相信该断言是有效的。

SP 可以验证证书的真实性并且只有 IdP 证书可以签署断言(即其他人不可能提供“有效”断言),这一点非常重要。

使用受信任的根签名证书,SP 会信任您的证书,因为他们信任根。使用自签名证书,SP 会信任您的证书,因为他们信任您的证书。区别很重要。

如果 SP 因为信任根而信任您的证书,那么如果该证书是由受信任的根签名的,那么他们可能会信任坏人证书。在一般的 TLS 连接中,可信根存在着一对多的关系。我无法亲自验证我访问的每个网站的证书,因此受信任的根会为我执行此操作。

对于 SP 与 IdP 关系,可以验证 IdP 的证书。可以完全信任该证书。 SP 的管理员下载证书并将其添加到 SP 的配置中。 SP 应配置为仅信任该证书(自签名证书本质上成为 CA,但 IdP 可能有自己的 CA)。

虽然信任自签名证书胜过信任受信任的根签名证书似乎违反直觉,但 SP 与 IdP 的一对一关系意味着您可以通过以下方式验证该证书直接从 IdP 配置页面获取。

话虽这么说,受信任的根只签署短期证书是有原因的。同一证书使用的时间越长,其被泄露的可能性就越大(其他人可能会获得私钥)。

关于certificate - SAML 签名证书 - CA 签名与自签名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/71384278/

相关文章:

saml - Spring SAML : how to push the requested URL to SAML as RELAY_STATE?

certificate - 如何在不使用 OpenSSL 的情况下使用私钥导出 Base64 编码的 x.509 证书

ios - APNS aps-环境-Testflight版本的权利/App的生产版本

asp.net-mvc - 使用同一应用程序但具有多个域的单点登录ASP.NET MVC

session 未进入 session Tomcat 的单点登录

certificate - 在没有中间证书的情况下验证签名

python - 导入错误 : No module named saml2. 验证

iphone - 使用公司 iOS Developer 开发私有(private) iPhone

ios - iOS 配置门户中的开发证书是什么?

azure - Office 365 使用外部 SAML 身份时出现错误 : 800478A1