有没有办法通过电子邮件/密码向LDAP用户进行身份验证?

时间:2010-05-28 14:45:09

标签: ruby-on-rails ruby ldap

有没有办法通过电子邮件(邮件)而不是cn或DN对LDAP用户进行身份验证?我们正在使用ruby ldap,可能还有active-ldap(尽管我们遇到了问题)。我们需要做的就是验证用户身份,然后根据身份验证成功在我们的系统中创建成员资格。

1 个答案:

答案 0 :(得分:0)

使用管理用户登录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( "email", "joe@email.com" )
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