node.js下LDAP查询实例分享
内容摘要
目标:
从一个LDAP Server获取uid=kxh的用户数据
LDAP地址为:ldap://10.233.21.116:389
在工程根目录中,先npm一个LDAP的访问库ldpajs
npm install ldapjs
在工程根目录中,创建一
从一个LDAP Server获取uid=kxh的用户数据
LDAP地址为:ldap://10.233.21.116:389
在工程根目录中,先npm一个LDAP的访问库ldpajs
npm install ldapjs
在工程根目录中,创建一
文章正文
目标:
从一个LDAP Server获取uid=kxh的用户数据
LDAP地址为:ldap://10.233.21.116:389
在工程根目录中,先npm一个LDAP的访问库ldpajs
npm install ldapjs
在工程根目录中,创建一个app.js
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 | 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(); }); }); }); |
代码注释