【问题标题】:How to use generateProviderServiceMetadata() working with passport-saml如何使用 generateProviderServiceMetadata() 与 passport-saml 一起使用
【发布时间】:2014-07-23 15:24:33
【问题描述】:

我有以下问题:

我想使用 node.js 和包为我的 SSO-ServiceProvider 生成 SAML 元数据

'passport-saml'.

此包包含方法“generateServiceProviderMetadata(decryptionCert)”,它将生成适合提供给身份提供者的服务提供者元数据文档。

这需要一个解密证书...

我应该使用哪个解密证书,即在哪里以及如何获得它?

据我所知,我需要类似的东西:

  privateCert: fs.readFileSync('./cert.pem', 'utf-8')

我从哪里获得“./cert.pem”?

任何建议和提示将不胜感激。

【问题讨论】:

    标签: node.js certificate metadata saml


    【解决方案1】:

    实际上,您需要为此生成自己的证书。如果你有私钥,你可以用它来生成证书文件:

    openssl req -x509 -nodes -days 365 -key mykey.key -out certificate.crt
    

    其中 mykey.key 是您现有的密钥,而 certificate.crt 是新生成的证书,您应该将其作为参数传递给 generateServiceProviderMetadata 函数.

    如果您还没有私钥,使用此命令将为您生成一个:

    openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout mykey.key -out certificate.crt
    

    当然,首先你需要加载证书。使用 fs.readFileSync

    进入内存

    所以,以下是步骤:
    1. 生成.crt文件
    2. 将其加载到变量中:var decryptionCert: fs.readFileSync('./certificate.crt', 'utf-8')
    3. 生成元数据文件,调用提供的函数: myStrategy.generateServiceProviderMetadata(decryptionCert)

    【讨论】:

    • 那么对于上面的“passport-saml”示例,我们如何从 app.js 调用 generateServiceProviderMetadata?我有步骤 1 和 2,但不确定用您的示例替换“myStrategy”的内容。我已经尝试过saml,因为这是 config.js 中定义的策略,我还使用了“SamlStrategy”和其他各种可能的选项。
    • 实例化新的SamlStrategy时得到的策略对象。首先,您创建一个新对象:var myStrategy= new saml.Strategy({ // config parameters }); 然后,您可以将其传递给护照,但也可以稍后使用它来创建元数据:passport.use(myStrategy); myStrategy.generateServiceProviderMetadata(decryptionCert);
    • 它在哪里生成这个文档?如果我创建策略,然后调用此方法,传入我用于 privateCert 值的相同证书,我在 stdio 或生成的文件中什么都得不到。我也尝试过使用 cert arg
    • @wkhatch 如果有帮助,我只是在这里回答了这个问题:stackoverflow.com/a/50682941/399105
    • 谢谢,@bmaupin。我最终将它打印到控制台,但似乎配置很轻并且不是真正可用。我最终使用 samltool.com 为我们的 idp 生成一个
    猜你喜欢
    • 1970-01-01
    • 2020-01-09
    • 2013-04-23
    • 2013-10-01
    • 2016-06-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-05-31
    相关资源
    最近更新 更多