Я новичок в Nodejs и пытаюсь включить аутентификацию Active Directory в своем веб-приложении.Кроме того, я пытаюсь проверить, принадлежит ли пользователь к определенной группе, прежде чем разрешить ему это.Я пытаюсь следовать этой статье , но она не работает со мной:
Я использовал следующий код:
var passport = require('passport')
var ActiveDirectoryStrategy = require('passport-activedirectory')
var ActiveDirectory = require('activedirectory')
var ad = new ActiveDirectory({
url: 'ldap://my.domain.com',
baseDN: 'DC=my,DC=domain,DC=com',
username: 'readuser@my.domain.com',
password: 'readuserspassword'
})
passport.use(new ActiveDirectoryStrategy({
integrated: false,
ldap: ad
}, function (profile, ad, done) {
ad.isUserMemberOf(profile._json.dn, 'AccessGroup', function (err, isMember)
{
if (err) return done(err)
return done(null, profile)
})
}))
и в качестве промежуточного программного обеспечения я использовалэтот код:
var opts = { failWithError: true }
app.post('/login', passport.authenticate('ActiveDirectory', opts),
function(req, res) {
res.json(req.user)
}, function (err) {
res.status(401).send('Not Authenticated')
})
Однако я получаю эту ошибку, когда я пытаюсь открыть страницу «входа в систему»:
AuthenticationError: Несанкционировано при всех ошибках (D: \ Java Script \NodeJs \ Printer \ node_modules \ passport \ lib \ middleware \ authenticate.js: 172: 21) при попытке (D: \ Java Script \ NodeJs \ Printer \ node_modules \ passport \ lib \ middleware \ authenticate.js: 180: 28) вStrategy.strategy.fail (D: \ Java Script \ NodeJs \ Printer \ node_modules \ passport \ lib \ middleware \ authenticate.js: 297: 9) в D: \ Java Script \ NodeJs \ Printer \ node_modules \ passport-activedirectory \ index.js: 143: 22 в onFind (D: \ Java Script \ NodeJs \ Printer \ node_modules \ activedirectory \ lib \ activedirectory.js: 1334: 21) в onSearchEnd (D: \ Java Script \ NodeJs \ Printer \ node_modules \ activedirectory \lib \ activedirectory.js: 506: 21) в EventEmitter.(D: \ Java Script \ NodeJs \ Printer \ node_modules \ activedirectory \ lib \ activedirectory.js: 540: 7) в emitOne (events.js: 116: 13) в EventEmitter.emit (events.js: 211: 7) вsendResult (D: \ Java Script \ NodeJs \ Printer \ node_modules \ ldapjs \ lib \ client \ client.js: 1389: 22) в messageCallback (D: \ Java Script \ NodeJs \ Printer \ node_modules \ ldapjs \ lib \ client \ client.js: 1421: 16) в Parser.onMessage (D: \ Java Script \ NodeJs \ Printer \ node_modules \ ldapjs \ lib \ client \ client.js: 1089: 14) в emitOne (events.js: 116: 13) вParser.emit (events.js: 211: 7) в Parser.write (D: \ Java Script \ NodeJs \ Printer \ node_modules \ ldapjs \ lib \ messages \ parser.js: 111: 8) в конце (D: \ JavaScript \ NodeJs \ Printer \ node_modules \ ldapjs \ lib \ messages \ parser.js: 66: 19)
Любая помощь приветствуется.Спасибо