Есть ли способ аутентификации пользователя в LDAP с помощью электронной почты / пароля? - PullRequest
0 голосов
/ 28 мая 2010

Есть ли способ аутентификации пользователя в LDAP по электронной почте (mail) , а не cn или DN? Мы используем ruby ​​ldap и, возможно, active-ldap (хотя у нас были проблемы с этим). Все, что нам нужно сделать, - это аутентифицировать пользователя, а затем создать членство в нашей системе на основе успешной аутентификации.

1 Ответ

0 голосов
/ 28 мая 2010

Войдите в 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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...