On 9/4/04 6:09 pm, [EMAIL PROTECTED] <[EMAIL PROTECTED]> wrote:
> From: [EMAIL PROTECTED]
>
> Here is a simple script ... i am having very hard time here...
>
> This is my program
>
> use Net::LDAP qw(LDAP_SUCCESS LDAP_PROTOCOL_ERROR);
> use Authen::SASL;
> use Net::LDAP::Util qw(ldap_error_name ldap_error_text);
>
> sub lConnect {
> my $server = shift;
> print " the server name is $server\n";
> my $ldap = Net::LDAP->new($server, port=> 389, version => 3);
> print "=== The error is $@ <====\n";
> return($ldap);
> }
>
> my $ldap = &lConnect('111.11.11.1');
> my $sasl = Authen::SASL->new(mechanism => 'DIGEST-MD5', password
> =>'xyzabc');
> my $isBinded = $ldap->bind ('cn=durairaj avasi,ou=itdev,dc=cow,dc=net',
> sasl => $sasl, version => 3);#
> print "ERROR detected: -> ", ldap_error_name($isBinded->code), " ",
> ldap_error_text($isBinded->code);
>
> the above program returns the following::
>
> ERROR detected: -> LDAP_INVALID_CREDENTIALS The wrong password was
> supplied or the SASL credentials could not be processed
>
> if do a normal bind like
>
> $ldab->bind($mydn, password=>$password, version => 3);
>
> ( NOTE without SASL )
>
> i am getting the following error
>
> ERROR detected: -> LDAP_STRONG_AUTH_REQUIRED The server requires
> authentication
> be performed with a SASL mechanism
>
> Note the:: the crendtials are correct .. i use the same credential with
> all my rest of the applications but pointing different server.
>
>
> Tested with windows 2000 and windows xp getting the same error msg.
> I have installed 8xx-builds on Windows 2000 and windows xp and tested on both
> ... i am facing same
> issue with both the application.
>
> what i am doing wrong here.... some say that i should install
> perl-cyrus-sasl-0.02... but i am unable to find that module for 8xx
> environment___________________________________________________________________
You need to set the SASL userid (authcid) instead of just the DN in the
"outer" bind operation. This works for me:
$ldap = Net::LDAP->new("ldap.example.com", port => 389,
version => 3);
$sasl = Authen::SASL->new(
mechanism => "DIGEST-MD5",
callback => {
pass => "secret",
user => "[EMAIL PROTECTED]",
}
);
$res = $ldap->bind(sasl => $sasl);
Cheers,
Chris