Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Query Ldap for group details using net-ldap library

I am trying to query an ldap server for details of any groups using the net-ldap library for ruby

require 'rubygems'
require 'net/ldap'

username = "user1"
password = "pass1"
host = 'server.address'
ldap = Net::LDAP.new :host => host,  :port => 389
ldap.auth username, password

filter = Net::LDAP::Filter.eq("cn", "*group*")

ldap.search(:base => treebase, :filter => filter, :return_result => true) do |entry|
  puts "DN: #{entry.dn}"
  entry.each do |attr, values|
    puts ".......#{attr}:"
    values.each do |value|
      puts "          #{value}"
    end
  end
end

I get details about the group but not the owners of the group.

Any idea on what is wrong ?? and how to do it

like image 402
AaShish Upadhyay Avatar asked Nov 29 '25 10:11

AaShish Upadhyay


1 Answers

Found the correct way of accessing all the attributes offered by the LDAP server

 require 'rubygems'
   require 'net/ldap'

   ldap = Net::LDAP.new :host => 'server',
        :port => 389,
        :auth => {
              :method => :simple,
              :username => "user",
              :password => "pass"
        }

   group_name_filter = Net::LDAP::Filter.eq( "cn", "la lakers" )
   group_type_filter = Net::LDAP::Filter.eq( "objectclass", "basketball" )
   filter = group_name_filter & group_type_filter
   treebase = "dc=example,dc=com"
   attrs = ["dn", "cn", "mail", "displayname", "listowner", "members"]

   ldap.search( :base => treebase, :filter => filter, :attributes => attrs, :return_result => true ) 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

Thanks

like image 144
AaShish Upadhyay Avatar answered Dec 01 '25 23:12

AaShish Upadhyay