我一直在尝试转换以下ldapsearch查询
ldapsearch -H ldap://ldap.berkeley.edu -x -b 'ou=people,dc=berkeley,dc=edu' objectclass=*
到ldapjs脚本:
var ldap = require('ldapjs');
var server = 'ldap://ldap.berkeley.edu';
var searchBase = 'ou=people,dc=berkeley,dc=edu';
var client = ldap.createClient({
url: server
});
var opts = {
filter: '(objectclass=*)'
};
client.search(searchBase, opts, function(err, res) {
res.on('searchEntry', function (entry) {
console.log(entry.toString());
});
});
ldapsearch给了我很多结果,但ldapjs没有返回任何用户 您可以在GitHub上找到解决此问题的一些尝试。
答案 0 :(得分:5)
ldapjs搜索范围是OpenLDAP和(AFAIK)从UMich代码派生的大多数类似C库的“向后”。 ldapjs中的默认范围是“base”,而不是“sub”。在没有看到任何数据的情况下,您可能需要使代码看起来像:
var opts = {
filter: '(objectclass=*)',
scope: 'sub'
};
client.search(searchBase, opts, function(err, res) {
res.on('searchEntry', function (entry) {
console.log(entry.toString());
});
});