Can';t使用Perl绑定到Active Directory

Can';t使用Perl绑定到Active Directory,perl,active-directory,ldap,netldap,Perl,Active Directory,Ldap,Netldap,我刚刚安装了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",

我刚刚安装了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:LDAPPER:DSID-0C09003A9,注释:AcceptSecurityContext错误,数据52e,v1db0位于./ldap.pl第11行,第751行


尝试使用域\用户,而不是完整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;

我已编辑行属性以添加“”,如果不起作用,请尝试使用cn而不是SAMAccountNames筛选查询,直到没有输出。Windows服务器上的事件查看器中是否有任何内容可以显示有用的内容?是否确实要搜索存在的用户?您可以在查询中使用通配符(cn=f*)。此外,您还可以添加到搜索范围=>'sub'。您可以使用ldifde从正在搜索的用户导出ldif?导出LDIF有效。我试过你的建议,但还是没有结果。我试着用一个不存在的用户名绑定,它不会死。。。我认为这是值得注意的