ThumbnailPhoto из ActiveDirectory в узле js / Express / passport-ldapauth - PullRequest
0 голосов
/ 31 октября 2018

Я работаю на LDAP Active Directory Войдите в нашу систему. Если пользователь там, мне нужно показать имя пользователя, адрес электронной почты и изображение профиля. Проблема в том, что не получает атрибута, связанного с изображением профиля, из ответа . После некоторого исследования я обнаружил, что есть один атрибут с именем thumbnailPhoto, который является уменьшенным изображением для пользователя. Но я не получаю это в моем ответе. Я пробовал разные коды в activedirectory и passport-ldapauth npms , но не повезло.

Так что в настоящее время я решил придерживаться passport-ldapauth npm. А вот и мой код.

 var express = require('express')
 var app =  express();
 var bodyParser = require('body-parser');
 var multer = require('multer');
 var passport     = require('passport');
 var LdapStrategy = require('passport-ldapauth');

 app.use(bodyParser.urlencoded({extended:true}));
 app.use(bodyParser.json());
 app.use(function(req, res, next) {
     res.header("Access-Control-Allow-Origin", "*");
     res.header("Access-Control-Allow-Headers", "Origin, X-Requested-With, 
     Content-Type, Accept");
     next();
 });

 var OPTS = {
     server: {
       "url": "ldap://ip-address:389",
       "bindDN": "cn=username,ou=Users,ou=user-other-ou,dc=dcname,dc=com",
       "bindCredentials": "password",
       "searchBase": "dc=dcname,dc=lan",
       "searchFilter": "(sAMAccountName={{username}})",
     },
 };

 passport.use(new LdapStrategy(OPTS));

 app.get('/api/login', function(req, res, next) {
 passport.authenticate('ldapauth', {session: false}, function(err, user, info) { 
  if (err) {
    return res.send({ success : false, message : 'authentication failed', 
   "user": [] });
  }
  if (! user) {
    return res.send({ success : false, message : 'authentication failed', "user": [] });
  }     
  return res.send({ success : true, message : 'authentication succeeded', "user": user });
})(req, res, next);  

Там, где пользователю необходимо указать профиль (я думаю, это должно быть thumbnailPhoto) со всеми другими атрибутами.

Я пытался дать searchAttributes: ['displayName', 'mail','thumbnailPhoto'] в OPTS, который даст мне только данные атрибуты, и я получаю displayName, mail, но не thumbnailPhoto.

Любая помощь будет высоко ценится, спасибо.

...