2012-07-11 70 views
9

我目前正在研究node.js中的一個Web應用程序,用戶需要登錄才能訪問該信息。我想用外部的活動目錄服務器來檢查用戶的登錄名和密碼。我已經嘗試使用node-ldapauth,但我無法得到它的工作(我不知道它是否適用於活動目錄,也許只是openLdap)。有什麼建議麼?ldap nodejs活動目錄認證

回答

4

我用一個rubyldap庫來解決問題,謝謝!

更新:根據要求,這是我用來解決這個問題https://github.com/ruby-ldap/ruby-net-ldap/

您的服務器上安裝Ruby庫後,庫,利用創業板安裝(看看它是不是太硬)

require 'rubygems' 
    require 'net/ldap' 

    ldap = Net::LDAP.new :host => server_ip_address, 
     :port => 389, 
     :auth => { 
      :method => :simple, 
      :username => "cn=manager, dc=example, dc=com", 
      :password => "opensesame" 
     } 

    filter = Net::LDAP::Filter.eq("cn", "George*") 
    treebase = "dc=example, dc=com" 

    ldap.search(:base => treebase, :filter => filter) do |entry| 
    puts "DN: #{entry.dn}" 
    entry.each do |attribute, values| 
     puts " #{attribute}:" 
     values.each do |value| 
     puts "  --->#{value}" 
     end 
    end 
    end 

    p ldap.get_operation_result 

如上所示設置一個ruby文件。

您可以通過使用

var ldap = 'ruby '+process.cwd()+'/src/ruby/ruby_file_name '+ user+' '+password; 

搶在紅寶石的用戶名和密碼使用ARGV [0]和argv 1運行Ruby庫。

: 你可以通過在標準輸出

前搶紅寶石node.js中返回的結果由theCallBack功能。使用回撥功能

var result = exec(ldap, theCallBack); 

您可以抓取返回Ruby庫結果

function theCallBack(err,stdout) { 
    ----your code here, stdout is what you PUT in the ruby library. 

希望這有助於!

+1

它會很好,如果你可以編輯這個答案來包含一些關於你使用的解決方案的更多信息/鏈接/代碼,那麼它可以幫助其他可能有這個問題的人。 – Dhaust 2012-07-27 00:56:21

+1

我按照要求更新了我的解決方案 – Denis 2012-08-03 22:42:43

+0

非常好,謝謝。 – Dhaust 2012-08-05 22:59:14

0

你可以發佈你的代碼snipet和你得到的錯誤嗎?

我正試圖做類似的事情,並遇到ldapjs庫。它允許您實現到LDAP服務器的客戶端ldap連接,您可以在連接時驗證用戶的用戶名和密碼。

我試着在0.8.2的windows上設置它,並遇到了一些問題,這聽起來像開發人員正在尋找。這個庫的好處在於它不依賴於你引用的OpenLDAP綁定。

+0

https://github.com/mcavage/node-ldapjs/issues/81是在Windows上提到的安裝問題。 – Christophe 2012-07-19 15:04:04

+0

所以我的代碼片段看起來就像ldapauth libary https://github.com/trentm/node-ldapauth非常使用的示例代碼 – Denis 2012-07-19 21:37:16

+0

如果我安慰。登錄(LDAP)我得到這樣的回報 連接: {對:[對象], 可寫的:真正的, 可讀:真實, _paused:假的, _needDrain:假的, _pending:[], _pendingCallbacks:[], _pendingBytes:0, socket:[Object], encrypted:[Object], 等等等等 – Denis 2012-07-19 21:39:34