node.js - Nodejs 上的 ldap auth - 不断收到 32 No Such Object

标签 node.js ldap

我是 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/

相关文章:

php - ldap_search 将不接受搜索输入中带括号的过滤器

security - Apache Shiro 与 LDAP 结合

ios - 如何将 LDAP "jpegPhoto"转换为 NSString 到 UIImageView

javascript - gulp.watch 不按顺序运行任务

javascript - 学习你 Node : #3 My First I/O

node.js - 无法读取未定义的属性(读取 'F_OK' )

node.js - 如何将 Heroku 生成的服务器端口应用到我的前端 Vue.js 应用程序?

java - Weblogic 通过 Keytool 导入 SSL .PFX 文件

windows - 如何在远程 ApacheDS、LDAP 服务器中创建分区?

node.js - Mongoose 更新具有空值的字段会引发异常