9

私は現在、ユーザーが情報にアクセスするためにログインする必要がある node.js の Web アプリケーションに取り組んでいます。外部の Active Directory サーバーでユーザーのログインとパスワードを確認したい。node-ldapauth を使用してみましたが、機能しません (アクティブ ディレクトリで機能するかどうかはわかりません。openLdap だけかもしれません)。助言がありますか?

4

3 に答える 3

4

問題を解決するために ruby​​ldap ライブラリを使用しました。

更新: 要求どおり、これは問題を解決するために使用したライブラリです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.

お役に立てれば!

于 2012-07-26T21:14:24.910 に答える
0

あなたのコードのスニペットとあなたが得るエラーを投稿できますか?

私は同様のことをしようとしていて、ldapjsライブラリに出くわしました。これにより、LDAPサーバーへのクライアントLDAP接続を実装でき、接続を行う際にユーザーのユーザー名とパスワードを検証できます。

0.8.2のWindowsでセットアップしてみたところ、いくつかの問題が発生しました。これは、開発者が調査しているようです。このライブラリの優れた点は、参照したものが行うOpenLDAPバインディングに依存しないことです。

于 2012-07-18T17:39:13.093 に答える
0

Windowsでldapjsのインストールを機能させるために、私が従った手順をここに書きましたhttp://tochedev.blogspot.be/2012/07/i-wanted-to-add-ldapjs-to-my-windows.html

お役に立てれば。

于 2012-07-25T06:55:48.817 に答える