After much Googling and primate forehead-scratching, i've arrived at the conclusion that there are no good explanations on the web as to how to do simple LDAP authentication against ActiveDirectory in Perl; only mountains of situation-dependent and ostensibly overcomplicated slop.
So, for the benefit of the monestary, I present unto thee a block of code which performs simple LDAP authentication.
use Net::LDAP;
## Fill in the following as you would sitting down in a chair and logg
+ing in with standard Windows ActiveDirectory credentials..
$userName="YOURDOMAIN\\YourADAccountNameHere";
$pw="whateverpasswordyouhave";
## BTW, if you're getting these variables passed to you via a webpage,
+ it's important to convert special characters that have been translat
+ed into their Unicode equivalents back to straight ASCII. (For exampl
+e, if your password has a ! in it, it's going to get passed as "%21"
+(or whatever)).. So, to fix that, we repack the string with some swee
+t, sweet regex lovin'. If not, the following two lines should be omit
+ted.
$pw=~s/\%([A-Fa-f0-9]{2})/pack('C',hex($1))/seg;
$pw=~s/\+/ /g;
## On with the show..
$host="123.123.123.123";
$ldap=Net::LDAP->new($host) or die "Can't connect to LDAP server: $@";
$mesg=$ldap->bind($userName, password=>$pw);
$results=sprintf("%s",$mesg->error);
$mesg=$ldap->unbind;
if ($results=~/Success/)
{
print "Thank you. You have successfully authenticated; You may now
+enter picturesofcatslookingatofficeequipment.com";
}
else
{
print "You are a horrible, horrible person, and a slut. Try again."
+;
}
There. I feel better.