缩略图来自Node js / Express / passport-ldapauth中ActiveDirectory的照片

时间:2018-10-31 13:43:28

标签: node.js active-directory ldap ldapauth

我们正在使用 LDAP Active Directory 登录。如果用户在那里,我需要显示用户名,电子邮件和个人资料图片。问题是没有从响应中获取与个人资料照片相关的任何属性。经过一番研究,我发现有一个名为thumbnailPhoto的属性,即用户的缩略图照片。但是我没有得到答复。我在 activedirectory passport-ldapauth npms 中尝试了不同的代码,但是没有运气。

因此,目前我想坚持使用护照-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)以及所有其他属性的地方。

我尝试在OPTS中提供searchAttributes:['displayName', 'mail','thumbnailPhoto'],这将只给我给定的Attributes,并且得到displayNamemail,而不是thumbnailPhoto

任何帮助将不胜感激,谢谢。

0 个答案:

没有答案