Я пытаюсь написать прокси-адрес каталога активности, который будет получать поисковые запросы, запускать некоторый код и затем воссоздавать запрос с помощью реального сервера.Прокси Active Directory в node.js
Я не смог заставить его работать, вот это код до сих пор:
var ldap = require('ldapjs');
var ActiveDirectory = require('activedirectory');
var server = ldap.createServer();
server.bind('cn=root', function(req, res, next) {
console.log('BIND REACHED');
if (req.dn.toString() !== 'cn=root' || req.credentials !== 'somepassword')
return next(new ldap.InvalidCredentialsError());
res.end();
return next();
});
server.listen(389, '127.0.0.1', function() {
console.log('LDAP server listening at %s', server.url);
});
var ad = new ActiveDirectory({
url: 'ldap://127.0.0.1',
baseDN: 'dc=lab,dc=ldapproxy,dc=local',
username: 'root',
password: 'somepassword'
});
ad.findUser('root', function (err, results) {
if (err) {
console.log('AD Login Failed: '+err);
}
else
console.log('AD Login Succeeded.');
});
ошибка, что им получаю: ProtocolError: InvalidDistinguishedNameError: корень
Кажется, нет как и как я ввел учетные данные ActiveDirectory, я продолжаю получать ту же ошибку. Но когда я запускаю тот же код с разными учетными данными на реальном активном сервере каталогов, он работает без ошибок.
Что мне здесь не хватает? site Я читаю объяснение, как это сделать на Linux и с файлом паролей, я не использую linux или какие-либо файлы, и я не вижу никаких примеров, описывающих, как настроить сервер на привязку и поиск основанный на том, что я написал.
EDIT Я забыл упомянуть, что этот код snappit для отладки, я знаю, что я пытаюсь подключиться к тому же серверу я только что создал, это для целей тестирования и обучения, как Ldap.
Hi, Итак, основываясь на том, что вы говорите, я должен иметь своего рода пользователя db? Причина, по которой я пытался достичь этой строки 'console.log (' BIND REACHED ');' поэтому я могу сказать, что запросы могут быть получены. libData использует libdjjs и поддерживает эти имена пользователей. Как настроить DC & OU на моем сервере? Это только для целей auth, поэтому я считаю, что для них можно использовать простую строку (OU = Users & DC = example, DC = local), а затем любой запрос, который не соответствует i, может упасть. Но как я могу настроить их на своем сервере? – Shaul
Я устал, поэтому я пропустил эту часть «ошибка говорит все: root ....», я упомянул выше, что попытки привязки к активному серверу каталогов Active Directory с использованием того же кода работали. Разница была только в деталях, поэтому я предполагаю, что мне нужно как-то настроить дерево, прежде чем я смогу получить запросы на связывание. Но на основе учебника единственный способ - через файл ... – Shaul
Я не уверен, что вы просите ... :) Попробуйте распечатать трассировку стека ошибок и убедитесь, что она исходит от вызова либо к новой ActiveDirectory, либо к ad.findUser(). Если у вас есть другие способы изучения вашего Active Directory, попробуйте получить полное доменное имя пользователя * root * и связать его с этой строкой. Он должен работать. –