ldap nodejs主动目录authentication

我目前正在使用node.js中的一个Web应用程序,用户需要login才能访问这些信息。 我想检查用户login名和密码与外部活动目录服务器。 我曾尝试使用node-ldapauth,但我无法得到它的工作(我不知道它是否适用于活动目录,也许只是openLdap)。 有什么build议么?

我使用rubyldap库来解决问题,谢谢!

更新:根据要求,这是我用来解决问题的库https://github.com/ruby-ldap/ruby-net-ldap/

在服务器上安装ruby库之后,使用gem install(查看它不是太难)

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文件,如上所示。

你可以使用运行ruby库

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

要获取用户和密码在ruby使用ARGV [0]和ARGV 1 。 您可以使用callback函数来获取node.js中ruby返回的结果

 var result = exec(ldap, theCallBack); 

在callback函数中,你可以通过传入标准输出获取返回的ruby库结果

例如:

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

希望这可以帮助!

你可以发布你的代码snipet和你得到的错误吗?

我试图做类似的事情,并遇到了ldapjs图书馆。 它允许您实现到LDAP服务器的客户端ldap连接,并且可以在连接中validation用户的用户名和密码。

我尝试在0.8.2的窗口上设置它,并遇到了一些问题,这听起来像开发人员正在寻找。 这个库的好处在于它不依赖于引用的OpenLDAP绑定。

为了在Windows上安装ldapjs,我写了下面这些步骤http://tochedev.blogspot.be/2012/07/i-wanted-to-add-ldapjs-to-my-windows.html

希望这可以帮助。