2012-07-11 73 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