1

このリンクHow To Install and Configure a Basic LDAP Server を使用して、ローカル システムに LDAP サーバーをセットアップしました。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");かどうかを確認するために我慢しましたが、コンソールには表示されませんが。問題は何でしょうか?LDAP サーバーから応答がないのはなぜですか?LdapStrategycallbackuser authenticated or notcheck ldappassport-ldapaut

ubuntu 14.04 LTS を使用しています。node --version は v0.10.28 です。

更新: ldapauthモジュールも 試しましたが、同じ結果が得られませんでした。上記の Web サイトの変更されたコードを確認してください。

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がありません。サーバーに問題はありますか?

4

0 に答える 0