2012-07-11 24 views
9

Şu anda bir kullanıcının kullanıcı bilgilerine erişmek için giriş yapması gereken node.js içinde bir web uygulaması üzerinde çalışıyorum. Kullanıcı giriş ve şifresini harici bir aktif dizin sunucusuyla kontrol etmek istiyorum. Node-ldapauth kullanmayı denedim, ancak iş alamıyorum (etkin dizinler için çalışıp çalışmadığını bilmiyorum, belki sadece openLdap). Baska öneri?ldap nodejs etkin dizin kimlik doğrulaması

cevap

4

Sorunu çözmek için bir rubyldap kitaplığı kullandım!

Güncelleme: İstenildiği üzere bu senin sunucuda yakut kütüphane kurduktan sonra sorunu https://github.com/ruby-ldap/ruby-net-ldap/

çözmek için kullanılan kitaplığı (çok zor değil yukarı bakmak)

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 
yüklemek gem kullanarak, olduğunu

Yukarıda gösterildiği gibi bir yakut dosyası oluşturun.

Sen yakut kullanıcı ve şifre ARGV [0] ve argv 1 kullanmak kapmak için

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

kullanarak yakut kütüphanesini çalıştırabilirsiniz.

: Sen Stdout'a

ex ileterek döndürülen yakut kütüphane sonuçlarını yakalayabilir theCallBack fonksiyonunda işlevini

var result = exec(ldap, theCallBack); 

bir çağrı geri kullanılarak yakut node.js sonucu döndürdü yakala

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

Bu yardımcı olur umarız!

+1

Olduğu gibi üzerinde çalışıyorum LDAP türünü değiştirmek için seçeneğim yok Bu cevabı, kullandığınız çözüm hakkında daha fazla bilgi/bağlantı/kod içerecek şekilde düzenleyebiliyorsanız, bu soruna sahip olabilecek diğer kişilere yardımcı olabilmeniz için harika bir seçenek. – Dhaust

+1

Çözümü istediğim gibi güncelledim – Denis

+0

Mükemmel, bunun için teşekkürler. – Dhaust

0

Kodunuzun snipetini ve aldığınız hatayı kaydeder misiniz?

Benzerleri yapmaya çalışıyorum ve ldapjs kitaplığına rastladım. Bir LDAP sunucusuna bir istemci ldap bağlantısı uygulamanıza izin verir ve bağlantıyı yaparken kullanıcı adı ve şifresini doğrulayabilirsiniz.

Pencereleri 0.8.2 ile kurmayı denedim ve geliştiricinin aradığı ses gibi bazı sorunlar için çalıştırdım. Bu kitaplığın güzel yönü, başvuru yaptığınız kişinin OpenLDAP bağlayıcısına güvenmemesidir. Windows üzerinde çalışan ldapjs kurulumu olan için

+0

https://github.com/mcavage/node-ldapjs/issues/81, Windows'taki yükleme sorunundan bahsetti. – Christophe

+0

Kodumun bir parçacığı ldapauth libry gibi görünüyor. https://github.com/trentm/node-ldapauth çok fazla örnek kod kullanıyor – Denis

+0

Konsolu kullanırsam.log (ldap) i karşılığında böyle bir şey olsun bağlantısı: {çifti: [Nesne], yazılabilir: true, okunabilir: true, _paused: false, _needDrain: false, _pending: [], _pendingCallbacks: [], _pendingBytes: 0, soket: [Nesne], şifreli: [Nesne], vb ve benzeri – Denis

İlgili konular