Skip to content

Configuration

The easiest way to get SP and iDP ready is to import the metadata file directly.

js
// service provider
const sp = saml.ServiceProvider({
  metadata: fs.readFileSync('./metadata/sp.xml')
});

// identity provider
const idp = saml.IdentityProvider({
  metadata: fs.readFileSync('./metadata/idp.xml')
});

Without importing a defined metadata, we provide an advanced way to configure the entities. The metadata can be created according to the parameters later on.

js
// service provider
const sp = saml.ServiceProvider({
  privateKey: readFileSync('./test/key/sp/privkey.pem'),
  privateKeyPass: 'q9ALNhGT5EhfcRmp8Pg7e9zTQeP2x1bW',
  isAssertionEncrypted: false,
  encPrivateKey: readFileSync('./test/key/sp/encryptKey.pem'),
  encPrivateKeyPass: 'g7hGcRmp8PxT5QeP2q9Ehf1bWe9zTALN',
  // ....
});

// identity provider
const idp = saml.ServiceProvider({
  privateKey: readFileSync('./test/key/idp/privkey.pem'),
  privateKeyPass: 'q9ALNhGT5EhfcRmp8Pg7e9zTQeP2x1bW',
  isAssertionEncrypted: false,
  encPrivateKey: readFileSync('./test/key/idp/encryptKey.pem'),
  encPrivateKeyPass: 'g7hGcRmp8PxT5QeP2q9Ehf1bWe9zTALN',
  // ....
});

We will also generate the metadata for you if you use this advanced method to create your entity. See more here.

js
sp.getMetadata();
idp.getMetadata();

// or expose it to public (e.g. express.js)
router.get('/metadata', (req, res) => {
  const metadata = sp.getMetadata();
  return res.header('Content-Type','text/xml').send(metadata);
});

References