使用Perl进行LDAP绑定操作

时间:2016-10-27 11:28:48

标签: perl ldap bind

我正在尝试连接LDAP服务器。客户向我发送了以下3个信息:

  1. LDAP服务器的IP地址
  2. 用户名
  3. 密码
  4. 我正在使用以下代码:

    my $ldap = Net::LDAP->new ($ip_address) or die "$@"; 
    
    my $mesg = $ldap->bind ( $username,
                             password => $password,
                                      ) or die $@;
    
    my $result = $ldap->search(
            base   => $base,
            filter => $filter
            attrs  => \@attributes,
            );
    
    die $result->error if $result->code;
    

    $ result->错误值为:

    '000004DC:LdapErr:DSID-0C090728,注释:为了执行此操作,必须在连接上完成成功绑定。

    根据消息,绑定不成功。但如果不成功就应该死。我更改了密码,写错了值,它再次没有死。

    我转储$ mesg,这是bind的返回值,并看到以下消息:

    '80090308:LdapErr:DSID-0C0903C5,评论:AcceptSecurityContext错误

    但它也与正确的用户名和密码相同。用户名是'itservice'。我使用如下:

    my $mesg = $ldap->bind ( 'itservice',
                             password => $password,
                             ) or die $@;
    

    我尝试如下,但结果相同

    my $mesg = $ldap->bind ( 'cn=itservice',
                              password => $password,
                                 ) or die $@;
    

    是否有使用用户名或密码的其他格式?

1 个答案:

答案 0 :(得分:0)

LDAP绑定请求需要用户的有效DN,而不仅仅是用户名。 通常,应用程序首先搜索userName以检索用户DN,然后以用户身份绑定。