I know this question has been asked before, but maybe the
answers were in response to differnt details...
I'm trying to write a script that compares data in an Oracle
database with Active Directory. So, it seems like I should be
able to use DBD::Oracle and Net::LDAP, but I can't seem to get
bind() to work.
I've reduced my non-working code to the following...
#! perl -w
use Net::LDAP;
my $ad = Net::LDAP->new('ad.**org**.com', debug => 2)
or die "Couldn't connect to AD: $@, $!";
$ad->bind('**tried lots of stuff**', password => '**password**')
or die "Couldn't bind: $@, $!";
my $results = $ad->search(
filter => '(&(objectClass=user)(sAMAccountName=**userid**))');
die $results->error if $results->code;
my $count = $results->count;
print $count;
Whatever I do, I get an error like this...
000004DC: LdapErr: DSID-0C0906E8, comment: In order to perform this operation a
successful bind must be completed on the connection., data 0, v1db1 at searchde
mo_1.pl line 13, <DATA> line 755.
So, my first question is, why does the bind() not return an error
if it didn't succeed for the purposes of a successful operation?
Second, how do I figure out what to use as the first argument
to bind()? I built a small C# program that looks up my LDAP
record and prints it out, and I can see that my CN has a comma
in it (it's in the form "Last, First M"), and I'm below two
OUs and three DCs (DC=ad,DC=**org**,DC=com)... do I have to write
that whole path as the bind DN?
Thanks if anyone can help,
--
DLL