This node.js web application demonstrates SSO authentication, using the passport-saml
package.
This app requires 3 files to be placed in a folder named cert
located in the project's root directory. These files include (1) the certificate of the Identity Provider (IdP). As a Service Provider (SP), you need to generate your own (2) certificate and (3) private key. These files are named as follows:
cert.pem
: SP's certificate (Generated by you)idp_cert.pem
: IdP's certificatekey.pem
: SP's private key (Generated by you)
Generate the SP files with the following command:
openssl req -x509 -newkey rsa:4096 -keyout key.pem -out cert.pem -nodes -days 900
The IdP Certificate is contained within the ds:X509Certificate
tag.
- Copy the tag's contents into a file named
idp_cert.pem
.
Next, copy .env.sample
to .env
and edit appropriately. Running this app locally will likely not work since the IdP can't redirect to localhost
.
Register your Service Provider. During this step, the IdP Administrator downloads the metadata from the /sso/Metadata
endpoint and loads it into the IdP.
npm install
node app.js
By default, the node app is listening on port 4006.