Hi,

I have been working with LDAP server configurations from some time and now I want to integrate the LDAP in my project.

I want to use LDAP to authenticate the users when they login to my portal.

I found Net::LDAP  as a good perl module that can be used to serve my purpose.

I was successful in executing search statements and here is the code


#! /usr/bin/perl

 use Net::LDAP;

$ldap = Net::LDAP->new ( "<ip address>" ) or die "Connection Failed $@";

$mesg = $ldap->bind ( "<user name>",
                       password => "<password>",
                       version => 3 );


$base = "dc=example,dc=com";

$mesg = $ldap->search (  # perform a search
                        base   => $base,
                        filter => "(objectclass=*)"
                       );

 $mesg->code && die $mesg->error;


foreach $entry ($mesg->all_entries) { $entry->dump; }


for the above code I got the following correct output:


------------------------------------------------------------------------
dn:dc=example,dc=com

dc: example
description: Root LDAP entry for example.com
objectClass: dcObject
             organizationalUnit
             ou: rootobject
------------------------------------------------------------------------

dn:ou=People,dc=example,dc=com

         ou: People
description: All people in organisation
objectClass: organizationalUnit
------------------------------------------------------------------------
dn:uid=srinivas,ou=People,dc=example,dc=com

             uid: srinivas
              cn: srinivas
     objectClass: account
                  posixAccount
                  top
                  shadowAccount
    userPassword: {crypt}$1$zYwJ/asE$DsYRb6CXjzJihNyTV2lC9.
shadowLastChange: 13986
       shadowMax: 99999
   shadowWarning: 7
      loginShell: /bin/bash
       uidNumber: 503
       gidNumber: 100
   homeDirectory: /home/srinivas


now when I am trying to execute compare function whose code is



$mesg = $ldap->compare( $base,
                          attr  => "uid",
                          value => "srinivas"
                        );

$mesg->code && die $mesg->error;

foreach $entry ($mesg->all_entries) { $entry->dump; }

I am getting following error when I execute the above script


No such attribute at ldap_compare.pl line 34, <DATA> line 259.


Can any one suggest whether there are any additional attributed that are to be added or any other why that I can compare my username and password for authentication.

Can you tell me how to authenticate users with this module with username and password from a CGI page.

Any suggestion will be helpful.

Thanks in Advance.
Srinivas.

Reply via email to