我刚刚安装了Net :: LDAP,但我无法对AD服务器进行身份验证。
#!/usr/bin/perl
use strict;
use Net::LDAP;
my $ldap = "";
$ldap = Net::LDAP->new("serv01.noboundaries.dyndns.org");
my $mesg = "";
$mesg = $ldap->bind("CN=sansken,OU=NB_Users,DC=noboundaries,DC=dyndns,DC=org", password => "XXXXXXX");
die $mesg->error() if $mesg->code();
$mesg = $ldap->unbind;
我得到的错误是:
80090308:LdapErr:DSID-0C0903A9,评论:AcceptSecurityContext错误,数据52e,v1db0位于./ldap.pl第11行,第751行。
答案 0 :(得分:1)
尝试使用DOMAIN \ USER,而不是完整的DN。 您也可以使用upn(user@my.domain.net)
这段代码为我工作:
my $ad_Obj = Net::LDAP->new('my.domain.net', port => 389) or die $!;
$ad_Obj->bind('MY\FooUser', password =>'MyReallySecurePassword')or die $!;
$Mesg = $ad_Obj->search(
filter=>"(sAMAccountName=FooUser)",
attrs => "['*']",
base=>'DC=my,DC=domain,DC=net'
);
foreach $ad_Object ($Mesg->entries) {
print $ad_Object->dn() . "\n";
}
$ad_Obj->unbind;
$ad_Obj->disconnect;