jinyedge's note
{http://www.jinyedge.pe.kr}
Hi, this is jinyedge. I'm a software developer.
I hope you can find some useful information
in my homepage.
jinyedge at gmail.com
Since 2001.12.05
|
|
| Subj: Perl, Authentication against Novell edirectory using Net::LDAP. |
|
|
Mtime: 2009-11-03 01:03:24 |
|
|
#! /usr/bin/perl
use strict;
use Net::LDAP;
#------------------------------------------------------
sub auth_edirectory{
my $host = shift;
my $port = shift;
my $base_dn = shift;
my $admin_dn = shift;
my $admin_pw = shift;
my $un = shift;
my $pw = shift;
my $ldap = Net::LDAP->new($host, port => $port) or return 0;
$ldap->bind ($admin_dn, password => $admin_pw) or return 0;
# Get user_dn.
my $res = $ldap->search(base => $base_dn, filter => "uid=$un") or return 0;
$ldap->unbind;
my $user_dn;
my $entry = $res->shift_entry;
if($entry){
$user_dn = $entry->dn;
}
else{
return 0;
}
# Auth user.
$ldap = Net::LDAP->new($host, port => $port) or die "$@";
my $res = $ldap->bind ($user_dn, password=>"$pw") or die "$@";
$ldap->unbind;
if($res->code){
return 0;
}
return 1;
}
#------------------------------------------------------
# main.
if(auth_edirectory("10.0.0.161", 1389, "o=pinetree", "cn=admin,o=pinetree", "1243", "puser", "puser1q")){
print "OK\n";
}
else{
print "ERR\n";
}
|
|
|
|
|