41 lines
1.2 KiB
JavaScript
41 lines
1.2 KiB
JavaScript
const _ = require('lodash')
|
|
|
|
/* global WIKI */
|
|
|
|
// ------------------------------------
|
|
// SAML Account
|
|
// ------------------------------------
|
|
|
|
const SAMLStrategy = require('passport-saml').Strategy
|
|
|
|
module.exports = {
|
|
init (passport, conf) {
|
|
passport.use('saml',
|
|
new SAMLStrategy({
|
|
callbackURL: conf.callbackURL,
|
|
entryPoint: conf.entryPoint,
|
|
issuer: conf.issuer,
|
|
audience: conf.audience,
|
|
cert: _.split(conf.cert, '|'),
|
|
privateCert: conf.privateCert,
|
|
decryptionPvk: conf.decryptionPvk,
|
|
signatureAlgorithm: conf.signatureAlgorithm,
|
|
identifierFormat: conf.identifierFormat,
|
|
acceptedClockSkewMs: _.toSafeInteger(conf.acceptedClockSkewMs),
|
|
disableRequestedAuthnContext: conf.disableRequestedAuthnContext,
|
|
authnContext: conf.authnContext,
|
|
forceAuthn: conf.forceAuthn,
|
|
providerName: conf.providerName,
|
|
skipRequestCompression: conf.skipRequestCompression,
|
|
authnRequestBinding: conf.authnRequestBinding
|
|
}, (profile, cb) => {
|
|
WIKI.models.users.processProfile(profile).then((user) => {
|
|
return cb(null, user) || true
|
|
}).catch((err) => {
|
|
return cb(err, null) || true
|
|
})
|
|
})
|
|
)
|
|
}
|
|
}
|