如何使用generateProviderServiceMetadata()与passport-saml一起使用

ely*_*ahu 6 metadata certificate saml node.js

我有以下问题:

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

"护照SAML".

该包包括方法'generateServiceProviderMetadata(decryptionCert)',其将生成适合于提供给身份提供者的服务提供者元数据文档.

这需要一个decryptionCert ...

我应该使用哪种decryptionCert,即在何处以及如何获得它?

据我了解,我需要这样的东西:

  privateCert: fs.readFileSync('./cert.pem', 'utf-8')
Run Code Online (Sandbox Code Playgroud)

我在哪里得到'./cert.pem'?

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

Ner*_*man 6

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

openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout mykey.key -out certificate.crt
Run Code Online (Sandbox Code Playgroud)

如果mykey.key是您现有的密钥,而certificate.crt是新生成的证书,您应该作为参数传递给generateServiceProviderMetadata函数.当然,首先你需要加载证书.使用fs.readFileSync进入内存

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

  • 它在哪里生成这个文件?如果我创建策略,然后调用此方法,传入我用于privateCert值的相同证书,我在stdio或生成的文件中都得不到任何内容.我也尝试过使用cert arg (2认同)