【问题标题】:SAML2: Does the Service Provider or Identity Provider create the X.509 certificate?SAML2:服务提供者或身份提供者是否创建 X.509 证书?
【发布时间】:2019-05-02 18:00:34
【问题描述】:

我使用ComponentSpace's .net library 创建了一个 SAML2 身份提供程序。 我们有一个第三方应用程序将充当服务提供商。

我知道使用了 X.509 证书,但谁来创建证书?身份提供者,服务提供者。还是他们各自创建自己的?

【问题讨论】:

    标签: c# saml x509certificate saml-2.0 component-space


    【解决方案1】:

    ComponentSpace 附带一些自签名证书,您可以使用这些证书开始使用。

    您需要在 SP 端创建证书。

    在 IDP 方面,IDP 将拥有自己创建的证书。

    ADFS 例如如果配置为这样做,将创建自己的,但您可以根据需要上传自己的。

    【讨论】:

    • Certificate Guide 记录了许多创建自签名证书的方法。还值得注意的是,作为 SP,您不一定需要证书。如果您要签署 SAML 消息或要加密 SAML 断言,则需要它。
    • 因此,例如,我(作为身份提供者)使用公钥 xyz 创建一个自签名证书“​​idp.pfx”。我还创建了“idp.cer”并将 xyz 公钥放入其中。我在本地存储“idp.pfx”和“idp.cer”(例如,在我的 /Certificates 文件夹下)。然后我给服务提供商一份“idp.cer”(公钥)的副本。如您所说,如果我们要“签署 SAML 消息或要加密 SAML 断言”,也会执行相反的操作。我有这个权利吗?谢谢!
    • @ComponentSpace 或者等等...是元数据中提供的公钥吗?
    • 包含公钥的证书通常作为元数据的一部分提供,通常在元素 KeyDescriptor 中 如果使用签名或加密,您总是需要一个密钥对...包含公钥的证书还不够。
    • @johnluke.laue 您的理解是正确的。抱歉,我误读了您的原始问题,并认为您在充当 SP。作为 IdP,您将拥有一个私钥并向 SP 提供相应的公钥。您发送的 SAML 消息将使用您的私钥进行签名。 SP 将使用您的公钥验证签名。公钥可以作为证书文件(通常是 Windows 上的 .CER)分发,或者最好作为 SAML 元数据的一部分分发。 SP 不太可能要求对 SAML 断言进行加密,但如果是这种情况,您可以使用 SP 的公钥进行加密。
    猜你喜欢
    • 2015-04-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-11-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-04-05
    相关资源
    最近更新 更多