我目前正在使用node.js开发一个web应用程序,用户需要登录才能访问信息。我想使用外部活动目录服务器来检查用户的登录名和密码。我尝试过使用node-ldapauth,但无法使其工作(我不知道它是否适用于活动目录,也许只适用于openLdap)。有什么建议吗?
我目前正在使用node.js开发一个web应用程序,用户需要登录才能访问信息。我想使用外部活动目录服务器来检查用户的登录名和密码。我尝试过使用node-ldapauth,但无法使其工作(我不知道它是否适用于活动目录,也许只适用于openLdap)。有什么建议吗?
我使用了一个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]和ARGV1。您可以通过使用回调函数在node.js中获取Ruby返回的结果。
var result = exec(ldap, theCallBack);
function theCallBack(err,stdout) {
----your code here, stdout is what you PUT in the ruby library.
为了在Windows上安装ldapjs,我在这里写下了我所遵循的步骤http://tochedev.blogspot.be/2012/07/i-wanted-to-add-ldapjs-to-my-windows.html
希望这能有所帮助。
请问您能否发布您的代码片段和错误信息?
我正在尝试实现类似的功能,并找到了 ldapjs 库。它允许您实现与 LDAP 服务器的客户端连接,并在连接过程中验证用户的用户名和密码。
我尝试在 Windows 上使用版本 0.8.2,但遇到了一些问题,听起来开发者正在处理。这个库的好处是它不依赖于您提到的那个 OpenLDAP 绑定。