我已经通过此链接在本地系统中设置了 LDAP 服务器How To Install and Configure a Basic LDAP Server。我设法让 LDAP 服务器运行并能够通过phpldapadmin
. 我添加了一个用户,如图所示
为了确认 LDAP 服务器中的用户,我使用了以下命令
$ ldapsearch -x -W -D 'cn=thiru niren,cn=users,ou=group,dc=test,dc=com' -b "" -s base -H ldap://192.168.2.4
它要求我输入密码然后我输入密码并得到结果
Enter LDAP Password:
# extended LDIF
#
# LDAPv3
# base <> with scope baseObject
# filter: (objectclass=*)
# requesting: ALL
#
#
dn:
objectClass: top
objectClass: OpenLDAProotDSE
# search result
search: 2
result: 0 Success
# numResponses: 2
# numEntries: 1
然后我尝试使用passport-ldapauth模块。我为此编写的代码是
var LdapStrategy = require('passport-ldap').Strategy,
passport = require('passport');
passport.use(new LdapStrategy({server: {
url: 'ldap://192.168.2.4',
adminDn:'cn=thiru niren,cn=users,ou=group,dc=test,dc=com',
adminPassword: 'infra'
}},
function(user, done) {
console.log("user authenticated or not");
return done(null, user);
}
));
console.log("check ldap");
执行此代码后,我只check ldap
看到terminal
. 然后我提出console.log("user authenticated or not");
来验证是否LdapStrategy
是调用函数,但我在控制台中callback
没有看到,但是。会有什么问题?为什么没有从 ldap 服务器得到任何响应?user authenticated or not
check ldap
passport-ldapaut
我正在使用 ubuntu 14.04 LTS。节点 --version 是 v0.10.28。
更新: 我也尝试了ldapauth模块,但没有运气我得到相同的结果,请检查上述网站的修改代码
var connect = require('connect');
var LdapAuth = require('ldapauth');
// Config from a .json or .ini file or whatever.
var config = {
ldap: {
url: "ldap://192.168.2.4:389",
adminDn: "cn=thiru niren,cn=users,ou=group,dc=test,dc=com",
adminPassword: "infra",
searchBase: "ou=group,dc=test,dc=com",
searchFilter: "(uid=tniren)"
}
};
var ldap = new LdapAuth({
url: config.ldap.url,
adminDn: config.ldap.adminDn,
adminPassword: config.ldap.adminPassword,
searchBase: config.ldap.searchBase,
searchFilter: config.ldap.searchFilter,
//log4js: require('log4js'),
cache: true
});
//console.log("we here",ldap);
var basicAuthMiddleware = connect.basicAuth(function (username, password, callback) {
console.log("we");
ldap.authenticate(username, password, function (err, user) {
console.log("we are");
if (err) {
console.log("LDAP auth error: %s", err);
}
callback(err, user)
});
});
这里我也没有得到服务器的任何响应,ldap
服务器有问题吗?