Support self-signed certs for external ldap/ad
This commit is contained in:
+9
-1
@@ -64,9 +64,16 @@ function getClient(externalLdapConfig, callback) {
|
|||||||
try { ldap.parseDN(externalLdapConfig.baseDn); } catch (e) { return callback(new BoxError(BoxError.BAD_FIELD, 'invalid baseDn')); }
|
try { ldap.parseDN(externalLdapConfig.baseDn); } catch (e) { return callback(new BoxError(BoxError.BAD_FIELD, 'invalid baseDn')); }
|
||||||
try { ldap.parseFilter(externalLdapConfig.filter); } catch (e) { return callback(new BoxError(BoxError.BAD_FIELD, 'invalid filter')); }
|
try { ldap.parseFilter(externalLdapConfig.filter); } catch (e) { return callback(new BoxError(BoxError.BAD_FIELD, 'invalid filter')); }
|
||||||
|
|
||||||
|
var config = {
|
||||||
|
url: externalLdapConfig.url,
|
||||||
|
tlsOptions: {
|
||||||
|
rejectUnauthorized: externalLdapConfig.acceptSelfSignedCerts ? false : true
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
var client;
|
var client;
|
||||||
try {
|
try {
|
||||||
client = ldap.createClient({ url: externalLdapConfig.url });
|
client = ldap.createClient(config);
|
||||||
} catch (e) {
|
} catch (e) {
|
||||||
if (e instanceof ldap.ProtocolError) return callback(new BoxError(BoxError.BAD_FIELD, 'url protocol is invalid'));
|
if (e instanceof ldap.ProtocolError) return callback(new BoxError(BoxError.BAD_FIELD, 'url protocol is invalid'));
|
||||||
return callback(new BoxError(BoxError.INTERNAL_ERROR, e));
|
return callback(new BoxError(BoxError.INTERNAL_ERROR, e));
|
||||||
@@ -220,6 +227,7 @@ function testConfig(config, callback) {
|
|||||||
try { ldap.parseFilter(config.filter); } catch (e) { return callback(new BoxError(BoxError.BAD_FIELD, 'invalid filter')); }
|
try { ldap.parseFilter(config.filter); } catch (e) { return callback(new BoxError(BoxError.BAD_FIELD, 'invalid filter')); }
|
||||||
|
|
||||||
if ('syncGroups' in config && typeof config.syncGroups !== 'boolean') return callback(new BoxError(BoxError.BAD_FIELD, 'syncGroups must be a boolean'));
|
if ('syncGroups' in config && typeof config.syncGroups !== 'boolean') return callback(new BoxError(BoxError.BAD_FIELD, 'syncGroups must be a boolean'));
|
||||||
|
if ('acceptSelfSignedCerts' in config && typeof config.acceptSelfSignedCerts !== 'boolean') return callback(new BoxError(BoxError.BAD_FIELD, 'acceptSelfSignedCerts must be a boolean'));
|
||||||
|
|
||||||
if (config.syncGroups) {
|
if (config.syncGroups) {
|
||||||
if (!config.groupBaseDn) return callback(new BoxError(BoxError.BAD_FIELD, 'groupBaseDn must not be empty'));
|
if (!config.groupBaseDn) return callback(new BoxError(BoxError.BAD_FIELD, 'groupBaseDn must not be empty'));
|
||||||
|
|||||||
Reference in New Issue
Block a user