Как проходить аутентификацию и авторизацию на основе членства в группе в Active Directory - PullRequest
0 голосов
/ 28 сентября 2018

Я новичок в 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)

Любая помощь приветствуется.Спасибо

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...