【问题标题】:Please explain SAML2 Signatures and PKs请解释 SAML2 签名和 PK
【发布时间】:2015-04-01 11:49:15
【问题描述】:

我正在开发 SAML2 服务提供商功能(支持 IdP 发起的 SSO)。

我了解一般流程是: 1) 用户在 IdP 进行身份验证。 2) 用户通过 HTTP POST 到我的 SAML 端点启动到我的 SP - 包含 XML 令牌。 3) 我的 SP 的断言消费者服务会吃掉该令牌,对其进行验证并将所述用户登录。

我不明白的是证书/私钥部分。我知道 IdP 与 SP 共享一个证书,并且该证书用于在 SAML 令牌到达时验证它......但是,我找不到任何细节(除了官方 SAML 规范,我真的难以理解)。

我的 q 是: 1) 谁创建证书? IdP 还是 SP? 2)谁创建私钥? IdP 还是 SP? 3)密钥与证书有何关系? 4) 密钥/证书如何共享? 5) 密钥/证书是如何创建的?

所以,如您所见,我只想要一个 PK / 证书用于傻瓜解释。在谁创建它们/它们是如何创建的/它们存储在哪里等方面......

非常感谢,

【问题讨论】:

    标签: single-sign-on saml-2.0


    【解决方案1】:

    IDP 将使用私钥对正在生成并发送到 SP 的 SAML 令牌进行签名。 SP 将使用公钥证书来验证 SAML 令牌中的签名。

    私钥-公钥对将由 IDP 创建,私钥保存在 IDP 服务器上以供签名期间使用。公钥将作为元数据的一部分提供给 SP。

    我建议您通读 PKI 文章以了解 PKI 设置的详细信息。私钥的存储非常关键,因为它们用于保证令牌不被篡改。

    【讨论】:

    • 谢谢Avi,我假设既然我正在创建SP 能力,那么我不需要担心这些密钥的创建吗?我只需要能够存储与我有关系的每个 IdP 的公钥证书吗?
    • 是的,没错。您存储证书的方式取决于您使用的平台和框架。
    猜你喜欢
    • 1970-01-01
    • 2011-12-30
    • 1970-01-01
    • 1970-01-01
    • 2021-06-14
    • 1970-01-01
    • 2021-12-11
    • 1970-01-01
    相关资源
    最近更新 更多