我正在使用Node.js 6.11.0和MongoDB开发一个JavaScript Web服务。我的Web服务需要执行LDAP查询。
我正在使用ldapjs包(版本1.0.1)。在我的LDAP模块JavaScript文件下面:
var ldap = require("ldapjs");
function bind(username, password, callback) {
try {
let client = _getClient(global.config.ldap.host);
client.bind(username, password, function (err) {
callback(err, client);
});
} catch (err) {
callback(err);
}
}
function search(client, dn, opts, callback) {
let arr = [];
if (!opts) opts = {};
client.search(dn, opts, function (err, res) {
if (err) {
callback(err);
return;
}
res.on('searchEntry', function (entry) {
arr.push(entry);
});
res.on('error', function (err) {
callback(err);
});
res.on('end', function (result) {
global.logger.log('status: ' + result.status);
callback(undefined, arr);
});
});
}
function _getClient(host) {
return ldap.createClient({
url: host
});
}
exports.bind = bind;
exports.search = search;
我正在查询此代码:
let appUser = "utente";
let appPass = "password";
let userDn = global.config.userDn.replace("{uid}", appUser);
ldapUtils.bind(userDn, appPass, function (err, client) {
if (err) {
return;
}
global.logger.info("Bind success...");
var opts = {
scope: "sub"
};
ldapUtils.search(client, global.config.shopsDn, opts, function (err, data) {
if (err) {
global.logger.error(err);
return;
}
global.logger.info("Search success...");
data[3].attributes[0]._vals[0...n]; // Here I cannot view all attributes.
res.send();
});
});
我无法使用相同的身份验证参数查看我可以使用 Apache Directory Studio 查看的所有属性。
你能帮助我吗?
修改
我指定了属性,但问题仍然存在:
var opts = {
scope: "sub",
attributes: ["dn", "cn", "customAttribute"]
};
由于
答案 0 :(得分:0)
虽然如果没有指定属性,它应该返回所有属性,但尝试向搜索选项添加属性,例如:
var opts = {
scope: "sub"
attributes: ["dn", "cn", "description", "objectGUID"]
};
答案 1 :(得分:0)
var opts = {
paged: true,
attributes = {
user: [
'dn', 'distinguishedName',
'userPrincipalName', 'sAMAccountName', /* 'objectSID', */ 'mail',
'lockoutTime', 'whenCreated', 'pwdLastSet',
'userAccountControl',
'employeeID', 'sn', 'givenName', 'initials', 'cn', 'displayName',
'comment', 'description'
],
group: [
'dn', 'cn', 'description', 'distinguishedName',
'objectCategory'
]}
};