summaryrefslogtreecommitdiff
path: root/lib/config.js
diff options
context:
space:
mode:
authoralecdwm2016-12-13 22:31:35 +0100
committeralecdwm2016-12-13 22:41:07 +0100
commit02e99277146d8bd912f2f19af1d3e94a6181d90d (patch)
tree01140b215f4defc46ec28f599d27ebe31dbf2915 /lib/config.js
parent8095f8cc983bbed532db7eee9f7f5a64e910b731 (diff)
Initial support for LDAP server authentication
Limitations as of this commit: - tlsOptions can only be specified in config.json, not as env vars - authentication failures are not yet gracefully handled by the UI - instead the error message is shown on a blank page (/auth/ldap) - no email address is associated with the LDAP user's account - no picture/profile URL is associated with the LDAP user's account - we might have to generate our own access + refresh tokens, because we aren't using oauth. The currently generated tokens are just a placeholder. - 'LDAP Sign in' needs to be translated to each locale
Diffstat (limited to 'lib/config.js')
-rw-r--r--lib/config.js26
1 files changed, 26 insertions, 0 deletions
diff --git a/lib/config.js b/lib/config.js
index 669fcaa8..a44c279b 100644
--- a/lib/config.js
+++ b/lib/config.js
@@ -93,6 +93,31 @@ var google = (process.env.HMD_GOOGLE_CLIENTID && process.env.HMD_GOOGLE_CLIENTSE
clientID: process.env.HMD_GOOGLE_CLIENTID,
clientSecret: process.env.HMD_GOOGLE_CLIENTSECRET
} : config.google || false;
+var ldap = config.ldap || (
+ process.env.HMD_LDAP_URL ||
+ process.env.HMD_LDAP_BINDDN ||
+ process.env.HMD_LDAP_BINDCREDENTIALS ||
+ process.env.HMD_LDAP_TOKENSECRET ||
+ process.env.HMD_LDAP_SEARCHBASE ||
+ process.env.HMD_LDAP_SEARCHFILTER ||
+ process.env.HMD_LDAP_SEARCHATTRIBUTES
+) || false;
+if (ldap == true)
+ ldap = {};
+if (process.env.HMD_LDAP_URL)
+ ldap.url = process.env.HMD_LDAP_URL;
+if (process.env.HMD_LDAP_BINDDN)
+ ldap.bindDn = process.env.HMD_LDAP_BINDDN;
+if (process.env.HMD_LDAP_BINDCREDENTIALS)
+ ldap.bindCredentials = process.env.HMD_LDAP_BINDCREDENTIALS;
+if (process.env.HMD_LDAP_TOKENSECRET)
+ ldap.tokenSecret = process.env.HMD_LDAP_TOKENSECRET;
+if (process.env.HMD_LDAP_SEARCHBASE)
+ ldap.searchBase = process.env.HMD_LDAP_SEARCHBASE;
+if (process.env.HMD_LDAP_SEARCHFILTER)
+ ldap.searchFilter = process.env.HMD_LDAP_SEARCHFILTER;
+if (process.env.HMD_LDAP_SEARCHATTRIBUTES)
+ ldap.searchAttributes = process.env.HMD_LDAP_SEARCHATTRIBUTES;
var imgur = process.env.HMD_IMGUR_CLIENTID || config.imgur || false;
var email = process.env.HMD_EMAIL || config.email || false;
@@ -151,6 +176,7 @@ module.exports = {
gitlab: gitlab,
dropbox: dropbox,
google: google,
+ ldap: ldap,
imgur: imgur,
email: email,
imageUploadType: imageUploadType,