feat: authentication module refactor + added CAS module

This commit is contained in:
NGPixel
2018-07-08 11:16:45 -04:00
parent 9e2f1caaf7
commit fd8bf4dbff
32 changed files with 194 additions and 127 deletions

View File

@@ -0,0 +1,40 @@
/* global WIKI */
// ------------------------------------
// LDAP Account
// ------------------------------------
const LdapStrategy = require('passport-ldapauth').Strategy
const fs = require('fs')
module.exports = {
init (passport, conf) {
passport.use('ldapauth',
new LdapStrategy({
server: {
url: conf.url,
bindDn: conf.bindDn,
bindCredentials: conf.bindCredentials,
searchBase: conf.searchBase,
searchFilter: conf.searchFilter,
searchAttributes: ['displayName', 'name', 'cn', 'mail'],
tlsOptions: (conf.tlsEnabled) ? {
ca: [
fs.readFileSync(conf.tlsCertPath)
]
} : {}
},
usernameField: 'email',
passReqToCallback: false
}, (profile, cb) => {
profile.provider = 'ldap'
profile.id = profile.dn
WIKI.db.users.processProfile(profile).then((user) => {
return cb(null, user) || true
}).catch((err) => {
return cb(err, null) || true
})
}
))
}
}

View File

@@ -0,0 +1,22 @@
key: ldap
title: LDAP / Active Directory
author: requarks.io
useForm: true
props:
url:
type: String
default: 'ldap://serverhost:389'
bindDn:
type: String
default: cn='root'
bindCredentials: String
searchBase:
type: String
default: 'o=users,o=example.com'
searchFilter:
type: String
default: '(uid={{username}})'
tlsEnabled:
type: Boolean
default: false
tlsCertPath: String