diff options
author | Johannes Zellner <johannes@nebulon.de> | 2015-06-27 19:05:20 +0200 |
---|---|---|
committer | Johannes Zellner <johannes@nebulon.de> | 2015-06-27 19:05:20 +0200 |
commit | 591ad40c9613c91069047ca0781a4b38fd2a8a1b (patch) | |
tree | 44cf2e3d52ead38eda311c38344294789f500ce8 /src | |
parent | c10e69bfcf248c5e2c17b776e19c348b8acfecc7 (diff) | |
download | Surfer-591ad40c9613c91069047ca0781a4b38fd2a8a1b.tar.gz Surfer-591ad40c9613c91069047ca0781a4b38fd2a8a1b.tar.zst Surfer-591ad40c9613c91069047ca0781a4b38fd2a8a1b.zip |
Add ldap auth
Diffstat (limited to 'src')
-rw-r--r-- | src/auth.js | 42 |
1 files changed, 42 insertions, 0 deletions
diff --git a/src/auth.js b/src/auth.js new file mode 100644 index 0000000..3d2acce --- /dev/null +++ b/src/auth.js | |||
@@ -0,0 +1,42 @@ | |||
1 | 'use strict'; | ||
2 | |||
3 | var passport = require('passport'), | ||
4 | LdapStrategy = require('passport-ldapjs').Strategy; | ||
5 | |||
6 | var LDAP_URL = process.env.LDAP_URL; | ||
7 | var LDAP_USERS_BASE_DN = process.env.LDAP_USERS_BASE_DN; | ||
8 | |||
9 | if (LDAP_URL && LDAP_USERS_BASE_DN) { | ||
10 | console.log('Enable ldap auth'); | ||
11 | |||
12 | exports.ldap = passport.authenticate('ldap', { | ||
13 | successReturnToOrRedirect: '/', | ||
14 | failureRedirect: '/login', | ||
15 | failureFlash: true | ||
16 | }); | ||
17 | } else { | ||
18 | exports.ldap = function (req, res, next) { | ||
19 | console.log('ldap auth disabled'); | ||
20 | next(); | ||
21 | }; | ||
22 | } | ||
23 | |||
24 | var opts = { | ||
25 | server: { | ||
26 | url: LDAP_URL, | ||
27 | }, | ||
28 | base: LDAP_USERS_BASE_DN, | ||
29 | search: { | ||
30 | filter: '(uid={{username}})', | ||
31 | attributes: ['displayname', 'username', 'mail', 'uid'], | ||
32 | scope: 'sub' | ||
33 | }, | ||
34 | uidTag: 'uid', | ||
35 | usernameField: 'username', | ||
36 | passwordField: 'password', | ||
37 | }; | ||
38 | |||
39 | passport.use(new LdapStrategy(opts, function (profile, done) { | ||
40 | console.log('ldap', profile); | ||
41 | done(null, profile); | ||
42 | })); | ||