Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to use generateProviderServiceMetadata() working with passport-saml

I have the following issue:

I want to generate the SAML-metadata, for my SSO-ServiceProvider, using node.js and the package

'passport-saml'.

This package includes the method 'generateServiceProviderMetadata( decryptionCert )' which will generate a service provider metadata document suitable for supplying to an identity provider.

this requires an decryptionCert...

Which decryptionCert shall I use, i.e. where and how to get it?

As far as I understand, I need something like:

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

where do I get './cert.pem' ?

Any advises and hints will be appreciated.

like image 968
elyahu Avatar asked Jul 23 '14 15:07

elyahu


1 Answers

In fact, you need to generate your own certificate for this. If you have private key, you can use it to generate cert file:

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

Where mykey.key is your existing key, and certificate.crt is newly generated certificate you should pass as a parameter to generateServiceProviderMetadata function.

If you don't have a private key yet, using this command will generate one for you:

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

Of course, first you need to load cert. into memory using fs.readFileSync

So, here are steps:
1. Generate .crt file
2. Load it into variable: var decryptionCert: fs.readFileSync('./certificate.crt', 'utf-8')
3. Generate metadata file, calling provided function: myStrategy.generateServiceProviderMetadata(decryptionCert)

like image 137
Nerman Avatar answered Sep 21 '22 14:09

Nerman