Я новичок от ie до node.js, немного разобрался с аутентификацией LDAP. Здесь я пытаюсь получить идентификатор сотрудника из поиска, но ни одна из записей поиска не извлекается, хотя переданные учетные данные успешно ограничены, не уверен, где меня вводят в заблуждение. Если бы кто-то мог мне помочь, это было бы большим подспорьем!
Ниже приведены наборы результатов фрагмента кода:
Привязка читателя выполнена успешно Длина результатов поиска: 0 Поиск retval: {" messageID ": 2," protocolOp ":" LDAPResult "," status ": 0," matchedDN ":" "," errorMessage ":" "," referrals ": []," controls ": []} Нет уникального пользователя привязать
ldapRoute.route('/ldap').post((req, res, next) => {
var result = "";
var email =req.body.email;
var client = ldap.createClient({
url: 'ldap://******'
});
var opts = {
filter: '(sAMAccountName='+ email + ')',
attributes: ['sAMAccountName']
};
var username = 'ii' + "\\" + email;
client.bind(username, req.body.password, function(err) {
if (err){
result += "Reader bind failed " + err;
res.send(result);
return;
}
else{
result += "Reader bind succeeded\n";
}
client.search('OU=emp,dc=i,dc=ac,dc=com', opts, function(err, searchRes) {
var searchList = []
if (err) {
result += "Search failed " + err;
res.send(result);
return;
}
searchRes.on("searchEntry", (entry) => {
result += "Found entry: " + entry + "\n";
searchList.push(entry);
});
searchRes.on("error", (err) => {
result += "Search failed with " + err;
res.send(result);
});
searchRes.on("end", (retVal) => {
result += "Search results length: " + searchList.length + "\n";
for(var i=0; i<searchList.length; i++)
result += "DN:" + searchList[i].employeeID + "\n";
result += "Search retval:" + retVal + "\n";
if (searchList.length == 1) {
client.bind(searchList[0].employeeID, req.body.password, function(err) {
if (err)
result += "Bind with real credential error: " + err;
else
result += "Bind with real credential is a success";
res.send(result);
}); // client.bind (real credential)
} else {
result += "No unique user to bind";
res.send(result);
}
});
});
});
});