2012-07-11 27 views
9

私は現在、ユーザが情報にアクセスするためにログインする必要があるnode.jsのWebアプリケーションを作成中です。私は外部のアクティブディレクトリサーバーでユーザーのログインとパスワードを確認したい。私はnode-ldapauthを使ってみましたが、それを動作させることはできません(私はそれがアクティブなディレクトリ、おそらくopenLdapで動作するかどうかわかりません)。助言がありますか?ldap nodejsアクティブディレクトリ認証

答えて

4

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

更新:要求されたように、これは私が宝石インストールを使用して、サーバー上のRubyライブラリをインストールした後、問題https://github.com/ruby-ldap/ruby-net-ldap/

を解決するために使用されるライブラリである(それはあまりにも難しいことではありませんそれを見て)

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ファイルを設定します。

あなたはルビーで、ユーザーとパスワードがARGV [0]とARGV 1を使用つかむために

var ldap = 'ruby '+process.cwd()+'/src/ruby/ruby_file_name '+ user+' '+password; 

を使ってRubyのライブラリを実行することができます。

:あなたはルビーを使用すると、標準出力に

元を渡すことによって返されたルビーライブラリ結果をつかむことができtheCallBack機能で

var result = exec(ldap, theCallBack); 

コールバック関数を使用することにより、Node.jsの中で結果を返さつかむことができます

function theCallBack(err,stdout) { 
    ----your code here, stdout is what you PUT in the ruby library. 

希望します。

+1

あなたがこの問題を抱えているかもしれない他の人を助けることができるように、この答えを編集して、あなたが使った解決策に関するより多くの情報/リンク/コードを含めることができれば素晴らしいです。 – Dhaust

+1

要求通りに私の解決策を更新しました – Denis

+0

優秀、ありがとうございます。 – Dhaust

0

コードのスニペットとエラーが表示されますか?

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

私は0.8.2のウィンドウでそれを設定しようとしましたが、いくつかの問題が発生しました。これは、開発者が探しているように聞こえます。このライブラリの素晴らしい点は、あなたが参照したものがOpenLDAPバインディングに依存していないことです。 Windows上で作業ldapjsのインストールを持つために

+0

https://github.com/mcavage/node-ldapjs/issues/81には、Windowsでのインストールに関する問題が記載されています。 – Christophe

+0

私のコードのスニペットは、ldapauthライブラリのように見えます https://github.com/trentm/node-ldapauthかなりコード例を使用 – Denis

+0

私はコンソールです。ログ(LDAP)私はお返しにこのような何かを得る 接続: {ペア:[オブジェクト]、 書き込み可能:真、 読める:真、 _paused:偽、 _needDrain:偽、 _pending:[]、 _pendCallbacks:[]、 _pendingBytes:0、 ソケット:[オブジェクト]、 暗号化:[オブジェクト]、 など – Denis