Den*_*nis 9 authentication ldap active-directory node.js
我目前正在使用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
Run Code Online (Sandbox Code Playgroud)
如上所示设置 ruby 文件。
您可以使用以下命令运行 ruby 库
var ldap = 'ruby '+process.cwd()+'/src/ruby/ruby_file_name '+ user+' '+password;
Run Code Online (Sandbox Code Playgroud)
要在 ruby 中获取用户和密码,请使用 ARGV[0] 和 ARGV 1。您可以使用回调函数在node.js中获取ruby返回的结果
var result = exec(ldap, theCallBack);
Run Code Online (Sandbox Code Playgroud)
在 theCallBack 函数中,您可以通过传入 stdout 来获取返回的 ruby 库结果
前任:
function theCallBack(err,stdout) {
----your code here, stdout is what you PUT in the ruby library.
Run Code Online (Sandbox Code Playgroud)
希望这可以帮助!
| 归档时间: |
|
| 查看次数: |
7891 次 |
| 最近记录: |