我是 LDAP 新手。
我正在使用nodejs的ldapauth我不断收到32 - No Such Object
。
这是我的代码:
var LdapAuth = require('ldapauth');
var ldapOptions = {
"url":"ldap://my-host:389",
"adminDn" : "cn=manager,dc=guycrc,dc=com",
"adminPassword":"secret",
"searchBase":"ou=Engineering",
"searchFilter":"(uid={{username}})"
};
var ldapAuthClient = new LdapAuth( ldapOptions );
ldapAuthClient.authenticate('Dana', 'Dana',
function(err, result) {
if (err) {
console.log(['Error',err.code, err.dn, err.message ]);
} else {
console.log('Credentials valid = ' + result); // true or false
}
}
);
这是我的 LDAP 信息 - 我认为与该问题相关的信息
dn: cn=Dana,ou=people,dc=guycrc,dc=com
...
cn: Dana Dana
sn: Dana
uid: Dana
userpassword: Dana
ou: Engineering
dn: cn=CompanyA,ou=groups,dc=guycrc,dc=com
...
cn: CompanyA
ou: Groups
member: cn=Dana,ou=people,dc=guycrc,dc=com
为什么我总是得到No Such Object
?
最佳答案
不确定 .authenticate
在您的行中的用途:
ldapAuthClient.authenticate('Dana', 'Dana',
根据错误,我猜测传递的数据不足以找到所需的对象。
查看您定义的选项:
"searchBase":"ou=Engineering",
"searchFilter":"(uid={{username}})"
表示它正在 ou=engineering 容器中查找。并寻找与用户名匹配的 uid,因此“Dana”作为 uid 部分可能是正确的。
但是由于您的 LDIF 显示 Dana 和 DN:
dn: cn=Dana,ou=people,dc=guycrc,dc=com
不在 ou=engineering 中。
也许就像将您的 searchBase 更改为 ou=people,dc=guycrc,dc=com 一样简单
关于node.js - Nodejs 上的 ldap auth - 不断收到 32 No Such Object,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17406258/