2010-05-28 5 views
0

Y at-il un moyen d'authentifier un utilisateur LDAP avec email (mail) et pas cn ou DN? Nous utilisons ruby ​​ldap, et éventuellement active-ldap (nous avons eu des problèmes avec ça, cependant). Tout ce que nous devons faire est d'authentifier un utilisateur, puis créer une adhésion à notre système basé sur le succès de l'authentification.Existe-t-il un moyen d'authentifier un utilisateur LDAP avec email/mot de passe?

Répondre

0

Connectez-vous pour ldap avec un utilisateur d'administration et de recherche à l'utilisateur par e-mail et mot de passe avec un filtre:

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("email", "[email protected]") 
treebase = "ou=Users,dc=example,dc=com" 

@auth = false 
ldap.search(:base => treebase, :filter => filter) do |entry| 
    ldap2 = Net::LDAP.new :host => server_ip_address, 
     :port => 389, 
     :auth => { 
       :method => :simple, 
       :username => entry.dn, 
       :password => "joe's password" 
     } 
    @auth = true if ldap2.bind 
end 

puts "user authenticated" if @auth 
Questions connexes