2012-07-11 17 views
9

Attualmente sto lavorando a un'applicazione web in node.js in cui un utente deve accedere per accedere alle informazioni. Voglio verificare l'accesso utente e la password con un server di directory attivo esterno. Ho provato a utilizzare node-ldapauth, ma non riesco a farlo funzionare (non so se funziona per le directory attive, forse solo openLdap). Eventuali suggerimenti?ldap nodejs autenticazione directory attiva

risposta

4

Ho usato una libreria rubyldap per risolvere il problema grazie!

Aggiornamento: Come richiesto questa è la libreria che ho usato per risolvere il problema https://github.com/ruby-ldap/ruby-net-ldap/

Dopo aver installato la libreria ruby ​​sul server, utilizzando gem install (cercarlo non è troppo difficile)

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 

Imposta un file rubino come mostrato sopra.

È possibile eseguire la libreria ruby ​​utilizzando

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

Per afferrare l'utente e la password in uso rubino ARGV [0] e ARGV 1. È possibile prendere il rubino risultato restituito in node.js utilizzando una funzione di call back

var result = exec(ldap, theCallBack); 

nella funzione PRENOTAZIONE AUTOMATICA si può afferrare i risultati libreria Ruby restituiti passando stdout

es:

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

Spero che questo aiuti!

+1

Sarebbe ottimo se puoi modificare questa risposta per includere ulteriori informazioni/link/codice sulla soluzione che hai usato in modo che possa aiutare gli altri che potrebbero avere questo problema. – Dhaust

+1

Ho aggiornato la mia soluzione come richiesto – Denis

+0

Eccellente, grazie per quello. – Dhaust

0

Potresti postare lo snipet del tuo codice e l'errore che ottieni?

Sto cercando di fare il simile e ho trovato la libreria ldapjs. Consente di implementare una connessione LDAP client a un server LDAP e, nel fare la connessione, è possibile convalidare il nome utente e la password dell'utente.

Ho provato a configurarlo su Windows con 0.8.2 e mi sono imbattuto in alcuni problemi, su cui sembra che lo sviluppatore stia cercando. L'aspetto gradevole di questa libreria è che non si basa sul binding OpenLDAP di quello a cui si fa riferimento.

+0

https://github.com/mcavage/node-ldapjs/issues/81 è il problema menzionato il problema di installazione su Windows. – Christophe

+0

Quindi uno snippet del mio codice sembra proprio come la liberia di ldapauth https://github.com/trentm/node-ldapauth praticamente usato l'esempio di codice – Denis

+0

Se mi consolo.log (LDAP) ottengo qualcosa di simile in cambio collegamento: {coppia: [Object], scrivibile: vero, leggibile: vero, _paused: false, _needDrain: false, _pending: [], _pendingCallbacks: [], _pendingBytes: 0, presa: [Object], cifrato: [Object], così via e così via – Denis

Problemi correlati