Active Directory lekerdezes LDAP, perl

Hali,

rovid elozmenyek:
van a cegnel az exchange. Sajna megkerulni nem tudom, megprobalok egyutt elni vele. Az evolution szepen szedi is a leveleket a webmail-en keresztul, nem problema. A AD kereses is mukodik, de sajnos van egy mezo, amire az evolution-ban (ben?) nem tudok keresni. Igy arra gondoltam, hogy parancssorbol (perl-bol, de barmi mas is jo) kerdezgetnem.

Amit tudok: az AD server neve, a felhasznaloi nevem es jelszavam. Az evolution-nak (nek?) ennyi is eleg volt, es tudott keresni. Sajna ahogy en nezegettem a perl-t szamos mas is kell hozza: OU, DC, ...

Hogy tudnam ezeket az infokat az AD-bol kinyerni?

Ez valamiert nem mukodik (0 talalatot ad):


#!/usr/bin/perl
use strict;
use Net::LDAP;
my $ad = Net::LDAP->new('ldap://ldapszerver.domain.xx') or die "Could not connect!";
$ad->bind("en", password=>"azentitkosjelszavam");
my $filter="eztkeresem";
my $dn="OU=People,OU=staff,DC=domain,DC=xx";
my $results = $ad->search( base=>$dn,scope=>'sub',filter=>$filter);
print $results->count . "\n";
$ad->unbind;

ps.: javitva a hianyzo f a filterbol.

Hozzászólások

my $results = $ad->search( base=>$dn,scope=>'sub',ilter=>$filter);

nem maradt ki egy "f"?

Egyébként ha wiresharkkal megnézed azokat a csomagokat, amiket az Evolution küld az ldap szervernek, az sokat tud segíteni.

En kicsit mashogy kozelitettem meg a dolgot.
Kerestem egy ldap browser-t. Ott tudott olyat, hogy fetch base dn.
De a bind-hez nem ker felhasznalonevet. En meg hiaba adok hozza a bind dn-hez az elejere egy cn=usernev-et nem akarja az igazsagot.

Lehet, hogy megiscsak kiprobalom a wiresharkot?

Verébre ágyúval.
Fogsz egy ingyenes LDAP túró cuccot (Pl Softerra LDAP browser, vagy ldapsearch)
Softerra-ba beírod az LDAP szerver ip-jét/nevét, mondasz neki egy olyat, hogy fetch dn, és már is megvan Base DN + a keresett Dc tag. Utána már csak a saját usered DN-jét kell megtalálni, az kicsit nehezebb lesz, de az sem lehetetlen.
(A saját usered DN-je kell a BIND-hez és NEM egyenlő a felhasználóneveddel.)

Az mar eredmeny, ha az ldapsearch azt adja vissza, hogy

ldapsearch -x -b "CN=..." -D "NETBIOS\Username" -h ads.domain.co -p 389 -W
Enter LDAP Password:
# refldap://ads.domain.co/CN=Schema,CN=...

gondolom jo, csak ettol kulonbozo eredmenyt nem tudok belole kicsikarni:I

Megadtam en ilyet is neki:
-LLL "(Nickname=attila)" cn sn

es ugyanaz a valasz.

Zsir, az ldapsearch mar mukodik

a .ldaprc-be beleraktam:
URI ldap://ldap.server.com:389
BASE {amit a fetch dn kikopott}
BINDDN {a windowsos username}

utana:
ldapsearch -v -LLL -x "" -W
ldap_initialize( )
Enter LDAP Password:
filter: (objectclass=*)
requesting:
...

muxik. Persze sok talalatot ad, de majd finomitok rajta.
A problema igy szerintem megoldva.