Я пытаюсь создать один сервер NodeJS и планирую использовать Microsoft Active Directory организации для аутентификации.
Я пробовал то же самое со многими пакетами (activedirectory, activedirectory2, ldapjs и т. Д.)
Но ни один из них, похоже, не работает для меня.
Я предоставляю URL-адрес LDAP, и ниже указан мой код.
var ldapjs = require('ldapjs');
var config = { url: 'ldap://mycompany.com/dc=mycompany,dc=com'
,timeout: 10
,reconnect: {
"initialDelay": 100,
"maxDelay": 500,
"failAfter": 5
}
}
var username = "user_id@mycompany.com";
var password="password";
const ldapClient = ldapjs.createClient(config);
ldapClient.bind(username, password, function (err) {
console.log("Logging data...");
ldapClient.search('dc=mycompany,dc=com', function (err, search) {
if (err) {
console.log('ERROR: ' +JSON.stringify(err));
return;
}
search.on('searchEntry', function (err,entry) {
if (err) {
console.log('ERROR: ' +JSON.stringify(err));
return;
}
else{
var user = entry.object;
console.log("Done.");
return;
}
});
});
});
Иногда это работает, но в большинстве случаев я продолжаю получать следующую ошибку (может быть, когда она выбираетдругой IP)
Error: connect ETIMEDOUT <ip address>:389
at Object.exports._errnoException (util.js:1018:11)
at exports._exceptionWithHostPort (util.js:1041:20)
at TCPConnectWrap.afterConnect [as oncomplete] (net.js:1090:14)
Что меня озадачивает;если я пытаюсь использовать тот же URL-адрес LDAP в моем приложении C #, он работает нормально.
Есть ли разница в том, как приложение .Net использует его, по сравнению с тем, как NodeJS использует?
Могу ли я каким-то образом изменить свой код, чтобы он работал?