node.js下LDAP查詢實踐
阿新 • • 發佈:2019-01-31
目標:
從一個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