You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在activedirectory2的LDAP查询结果中包含指定字段?

问题描述

我正在使用activedirectory2库查询LDAP服务器,find方法能正常运行,但返回结果里没有我需要的Job Title字段。

我的代码如下:

let ActiveDirectory = require('activedirectory2');
let config = {
    url: 'ldap://myservername',
    baseDN: 'OU=myOU,O=myOrg',    
}
let ad = new ActiveDirectory(config);

ad.authenticate(user, password, function (err, auth) {
    if (err) {
        console.log('ERROR0: ' + JSON.stringify(err));
        return;
    }

    if (auth) {
        console.log('Authenticated!');
        let query = "&(objectClass=*)(CN=Amy*)";
        ad.find(query, (err, results) => {
            if ((err) || (!results)) {
                console.log('ERROR1: ' + err);
                return;
            }
            console.log(results.other[0]);
        });
    }
    else {
        console.log('Authentication failed!');
    }
});

当前返回结果:

Authenticated!
{
  dn: 'CN=Amy Tomson,OU=myOU,O=myOrg',
  mail: 'amyt@myOU.myOrg',
  sn: 'Amy',
  cn: 'Amy Tomson'
}

如何让返回结果包含Job Title字段?


解决方案

要获取Job Title字段,你需要明确指定要查询的LDAP属性,因为activedirectory2的find方法默认仅返回部分常用属性。

  • 确认属性映射:在Active Directory中,Job Title对应的LDAP属性名为title,需确保该属性在你的AD服务器中已为目标用户赋值。
  • 修改find方法调用:activedirectory2的find方法支持第三个参数,用于指定需要返回的属性列表。调整代码如下:
// 保持原有认证逻辑不变
if (auth) {
    console.log('Authenticated!');
    let query = "&(objectClass=*)(CN=Amy*)";
    // 指定需返回的属性,添加title(对应Job Title)
    let desiredAttributes = ['dn', 'mail', 'sn', 'cn', 'title'];
    ad.find(query, desiredAttributes, (err, results) => {
        if ((err) || (!results)) {
            console.log('ERROR1: ' + err);
            return;
        }
        console.log(results.other[0]);
    });
}

如果需要获取用户的所有LDAP属性,可以直接传入['*']作为属性参数:

ad.find(query, ['*'], (err, results) => {
    // 处理返回结果
});

修改后,返回结果中会包含title字段,对应你需要的Job Title信息。


内容的提问来源于stack exchange,提问作者The KNVB

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.16 15:30:58