私は現在、ユーザーが情報にアクセスするためにログインする必要がある node.js の Web アプリケーションに取り組んでいます。外部の Active Directory サーバーでユーザーのログインとパスワードを確認したい。node-ldapauth を使用してみましたが、機能しません (アクティブ ディレクトリで機能するかどうかはわかりません。openLdap だけかもしれません)。助言がありますか?
3 に答える
問題を解決するために 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 関数では、返された Ruby ライブラリの結果を stdout に渡すことで取得できます
元:
function theCallBack(err,stdout) {
----your code here, stdout is what you PUT in the ruby library.
お役に立てれば!
あなたのコードのスニペットとあなたが得るエラーを投稿できますか?
私は同様のことをしようとしていて、ldapjsライブラリに出くわしました。これにより、LDAPサーバーへのクライアントLDAP接続を実装でき、接続を行う際にユーザーのユーザー名とパスワードを検証できます。
0.8.2のWindowsでセットアップしてみたところ、いくつかの問題が発生しました。これは、開発者が調査しているようです。このライブラリの優れた点は、参照したものが行うOpenLDAPバインディングに依存しないことです。
Windowsでldapjsのインストールを機能させるために、私が従った手順をここに書きましたhttp://tochedev.blogspot.be/2012/07/i-wanted-to-add-ldapjs-to-my-windows.html
お役に立てれば。