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