Package Exports
- samlp
This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (samlp) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.
Readme
SAML Protocol middleware to create SAMLP identity providers for node.js.
Installation
npm install samlpIntroduction
This middleware is meant to generate a valid SAML Protocol identity provider endpoint that speaks saml.
The idea is that you will use another mechanism to validate the user first.
The endpoint supports metadata as well in the url /FederationMetadata/2007-06/FederationMetadata.xml.
Usage
Options
| Name | Description | Default |
|---|---|---|
| cert | public key used by this identity provider | REQUIRED |
| key | private key used by this identity provider | REQUIRED |
| getPostURL | get the url to post the token f(audience, samlRequestDom, req, callback) | REQUIRED |
| issuer | the name of the issuer of the token | REQUIRED |
| audience | the audience for the saml token | req.query.SAMLRequest.Issuer |
| getUserFromRequest | how to extract the user information from request | function(req) { return req.user; } |
| profileMapper | mapper to map users to claims (see PassportProfileMapper) | PassportProfileMapper |
| signatureAlgorithm | signature algorithm, options: rsa-sha1, rsa-sha256 | 'rsa-sha256' |
| digestAlgorithm | digest algorithm, options: sha1, sha256 | 'sha256' |
| RelayState | state of the auth process | ```req.query.RelayState |
| sessionIndex | the index of a particular session between the principal identified by the subject and the authenticating authority | SessionIndex is not included |
Add the middleware as follows:
app.get('/samlp', samlp.auth({
issuer: 'the-issuer',
cert: fs.readFileSync(path.join(__dirname, 'some-cert.pem')),
key: fs.readFileSync(path.join(__dirname, 'some-cert.key')),
getPostURL: function (wtrealm, wreply, req, callback) {
return cb( null, 'http://someurl.com')
}
}));SAML Protocol Metadata
This module also support generating SAML Protocol metadata (IDPSsoDescriptor):
app.get('/samlp/FederationMetadata/2007-06/FederationMetadata.xml', samlp.metadata({
issuer: 'the-issuer',
cert: fs.readFileSync(path.join(__dirname, 'some-cert.pem')),
}));It also accept two optionals parameters:
- profileMapper: a class implementing the profile mapper. This is used to render the claims type information (using the metadata property). See PassportProfileMapper for more information.
- endpointPath: this is the full path in your server to the auth route. By default the metadata handler uses the metadata request route without
/FederationMetadata/2007..blabla.
Issue Reporting
If you have found a bug or if you have a feature request, please report them at this repository issues section. Please do not report security vulnerabilities on the public GitHub issue tracker. The Responsible Disclosure Program details the procedure for disclosing security issues.
Author
License
This project is licensed under the MIT license. See the LICENSE file for more info.
