LDAP JS auth获取错误

时间:2013-02-11 06:13:29

标签: node.js ldap

我是ldap的新手。我正在使用ldapauth.js来验证凭据。

我使用ldapauth npm进行认证。

/ * -------------- --------------了ldap_auth * /

var ldap = require('ldapjs');
var LdapAuth = require('ldapauth');
var server = ldap.createServer();

server.search('o=example', function(req, res, next) {
  var obj = {
    dn: req.dn.toString(),
    attributes: {
      objectclass: ['organization', 'top'],
      o: 'example'
    }
  };

  if (req.filter.matches(obj.attributes))
    res.send(obj);

  res.end();
});

server.listen(1389, function() {
  console.log('LDAP server listening at %s', server.url);
});



var options = {
    url: "ldap://0.0.0.0:1389",
    adminDn: "uid=myadminusername,ou=users,o=example",
    adminPassword: "mypassword",
    searchBase: "ou=users,o=example",
    searchFilter: "(uid={{username}})"
};
var auth = new LdapAuth(options);

auth.authenticate('myadminusername', 'mypassword', function(err, user) { console.log('err'); 
    console.log(err);
console.log(err.message);
console.log('user');
console.log(user);
});

auth.close(function(err) { console.log('errorr'); })

在控制台中我收到错误消息。

LDAP server listening at ldap://0.0.0.0:1389
err
{ dn: [Getter],
  code: [Getter],
  name: [Getter],
  message: [Getter] }
No tree found for: uid=myadminusername, ou=users, o=example
user
undefined

请帮我弄清楚出了什么问题。

感谢您的时间

2 个答案:

答案 0 :(得分:1)

您似乎输入了错误的端口号,默认LDAP端口为389,但此处您使用的是url: "ldap://0.0.0.0:1389"。我假设您在代码中使用了真实的IP。

答案 1 :(得分:1)

您正在同一进程中运行LDAP客户端和LDAP服务器。不知何故,我怀疑这是你想要做的。通常,您可以创建一个服务器进程来提供身份验证服务,或者您是尝试根据中央LDAP目录对您的用户进行身份验证的客户端。

错误消息还显示服务器没有任何数据 - 当然,因为您启动它并且没有提供任何数据。

我猜你只是想问你的中心(已经在某个地方运行)LDAP服务器来验证想要使用你的服务器/ api /网站的用户,那么你正在做的第二部分是正确的。只能使用here

找到的说明

在我关于效果here

的并行问题中查看明确应用中的配置