我目前正在使用node.js中的Web应用程序,用户需要登录才能访问该信息。我想用外部活动目录服务器检查用户登录名和密码。我尝试过使用node-ldapauth,但我无法使用它(我不知道它是否适用于活动目录,也许只是openLdap)。有什么建议吗?
答案 0 :(得分:4)
我使用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。 您可以使用回调函数
在node.js中获取ruby返回的结果var result = exec(ldap, theCallBack);
在theCallBack函数中,您可以通过传入stdout来获取返回的ruby库结果
例如:
function theCallBack(err,stdout) {
----your code here, stdout is what you PUT in the ruby library.
希望这有帮助!
答案 1 :(得分:0)
你可以发布代码的snipet和你得到的错误吗?
我正在尝试做类似的事情并遇到了ldapjs库。它允许您实现与LDAP服务器的客户端ldap连接,并且您可以在进行连接时验证用户的用户名和密码。
我尝试在0.8.2的Windows上进行设置并遇到了一些问题,这听起来像是开发人员正在寻找的。这个库的优点是它不依赖于你引用的OpenLDAP绑定。
答案 2 :(得分:0)
为了让ldapjs安装在Windows上工作,我写了我在这里执行的步骤http://tochedev.blogspot.be/2012/07/i-wanted-to-add-ldapjs-to-my-windows.html
希望这有帮助。