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->net($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.
Posts are HTML formatted. Put <p> </p> tags around your paragraphs. Put <code> </code> tags around your code and data!
Read Where should I post X? if you're not absolutely sure you're posting in the right place.
Please read these before you post! —
Posts may use any of the Perl Monks Approved HTML tags:
- a, abbr, b, big, blockquote, br, caption, center, col, colgroup, dd, del, div, dl, dt, em, font, h1, h2, h3, h4, h5, h6, hr, i, ins, li, ol, p, pre, readmore, small, span, spoiler, strike, strong, sub, sup, table, tbody, td, tfoot, th, thead, tr, tt, u, ul, wbr
Outside of code tags, you may need to use entities for some characters:
| |
For: |
|
Use: |
| & | | & |
| < | | < |
| > | | > |
| [ | | [ |
| ] | | ] |
Link using PerlMonks shortcuts! What shortcuts can I use for linking?
See Writeup Formatting Tips and other pages linked from there for more info.
|
|