/ / NodeJS、passport、passport-ldap ConnectionError:ldaps://ldap.XXXX.com:636クローズ - node.js、アクティブディレクトリ、passport.js

NodeJS、パスポート、パスポートldap ConnectionError:ldaps://ldap.XXXX.com:636 closed-node.js、active-directory、passport.js

私はWindows上で動作するNodejsサーバーをLinuxマシンにデプロイしようとしています。 passport-ldapauthモジュールを使って、私たちのLDAPサーバにログインします。

"ConnectionError:ldaps://ldap.XXX.com:636を終了しました" Windowsでの展開で、私は何の問題もありませんでした、

これがサーバーコードです。

var express = require("express")
, http = require("http")
, express = require("express")
, routes = require("./routes")
, http = require("http")
, passport = require("passport")
, flash = require("connect-flash")
, fs = require("fs")
, ldapStrategy = require("passport-ldapauth")
, path = require("path");

var ldapGroupName = "XXX_GROUP";
var app = express();
var ldapOptions = {
server : {
url : "ldaps://ldap.XXX.com:636",
searchBase : "o=XXX.com",
searchFilter : "(uid={{username}})",
tlsOptions : {
ca : [ fs.readFileSync("/etc/ssl/certs/XXX.crt") ]
}
}
};

var opts = {
filter : "(cn="+ldapGroupName+")",
scope : "sub"
};

//configure passport
passport.use(new ldapStrategy(ldapOptions));

var app = express();
var server = http.createServer(app);
app.set("views", __dirname + "/views");
app.set("view engine", "ejs");
app.use(express.favicon());
app.use(express.logger());
app.use(express.bodyParser());

app.use(express.cookieParser());
app.use(express.json({limit: "50mb"}));
app.use(express.urlencoded({limit: "50mb"}));
app.use(express.session({secret:"Password"}));
app.use(passport.initialize());
app.use(passport.session());
app.use(flash());
app.use(app.router);
app.use(express.static(path.join(__dirname, "WebContent")));

passport.serializeUser(function(user, done) {
done(null, user);
});

passport.deserializeUser(function(id, done) {
done(null, id);
});

app.post("/login", function(req, res, next) {
passport.authenticate("ldapauth", function(err, user, info) {
if (info) {
console.log("info: " + info.message);
res.send({
status : "err",
message : info.message
});
return;
}
if (err) {
console.log("err: " + err);
res.send({
status : "err",
message : err
});
return;
}
if (!user) {
return res.redirect("/");
}
req.logIn(user, function(err) {
req.session.cookie.expires = new Date(Date.now() + 1000 * 60 * 30);
if (err) {
return next(err);
}
return res.send({
status : "ok" ,
name : user.givenName
});
});
})(req, res, next);
});

server.listen(4002);
console.log("started port: 4002");

足りないものがありますか?証明書をインストールする必要がありますか?

回答:

回答№1は0

わかりました。答えを見つけて、一番上のserver.jsに追加しました。

process.env.NODE_TLS_REJECT_UNAUTHORIZED = "0";

ありがとう: node.jsおよびldapjsを使用したLDAPバインドエラー