node.js下LDAP查询实践

目标:

从一个LDAP Server获取uid=kxh的用户数据

LDAP地址为:ldap://10.233.21.116:389

 

在工程根目录中,先npm一个LDAP的访问库ldpajs

npm install ldapjs

在工程根目录中,创建一个app.js

var ldap =  require("ldapjs");


//创建LDAP client,把服务器url传入
var client = ldap.createClient({
  url: 'ldap://10.203.24.216:389'
});

//创建LDAP查询选项
//filter的作用就是相当于SQL的条件
var opts = {
  filter: '(uid=kxh)', //查询条件过滤器,查找uid=kxh的用户节点
  scope: 'sub',        //查询范围
  timeLimit: 500       //查询超时
};

//将client绑定LDAP Server
//第一个参数:是用户,必须是从根节点到用户节点的全路径
//第二个参数:用户密码
client.bind('uid=supbind,cn=users,dc=tiger,dc=com', '123456', function (err, res1) {

    //开始查询
    //第一个参数:查询基础路径,代表在查询用户信心将在这个路径下进行,这个路径是由根节开始
    //第二个参数:查询选项
    client.search('DC=tiger,DC=com', opts, function (err, res2) {

        //查询结果事件响应
        res2.on('searchEntry', function (entry) {
            
            //获取查询的对象
            var user = entry.object;
            var userText = JSON.stringify(user,null,2);
            console.log(userText);
            
        });
        
        res2.on('searchReference', function(referral) {
            console.log('referral: ' + referral.uris.join());
        });    
        
        //查询错误事件
        res2.on('error', function(err) {
            console.error('error: ' + err.message);
            //unbind操作,必须要做
            client.unbind();
        });
        
        //查询结束
        res2.on('end', function(result) {
            console.log('search status: ' + result.status);
            //unbind操作,必须要做
            client.unbind();
        });        
        
    });
    
});

 

参考:

filter语法:http://www.ldapexplorer.com/en/manual/109010000-ldap-filter-syntax.htm

ldapjs:https://www.npmjs.com/package/ldapjs

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值