Sam, Having been in your shoes, I found that you absolutely have to have one of the security configurations mentioned to update passwords in AD via Perl (or ldapadd/ldamodify) as Peter mentioned.
Luckily I've got a great windows sysadmin who could set up that cert for me (I'm windows challenged). Try this link http://www.linuxmail.info/enable-ldap-ssl-active-directory/ It's not the greatest article but lays out most of the initial steps towards setting up the cert. In my case, I use LDAPS and connect with an admin type user to AD. I typically don’t update AD directly, rather I use Net::LDAP::LDIF to generate LDIF files that I "apply" using ldapadd/ldapmodify over LDAPS from Linux. It took me awhile to get the hang of many of the Net::LDAP libraries out there, but it paid off (plus its quite fun/interesting). --Dan -----Original Message----- From: Peter Karman [mailto:pe...@peknet.com] Sent: Friday, May 27, 2011 10:12 AM To: perl-ldap@perl.org Subject: Re: [Net::LDAP] Resetting AD passwords without SSL Samuel Parsons wrote on 05/27/2011 09:07 AM: > I'm attempting to reset AD passwords without SSL as our AD server > admin doesn't know how to enable SSL on the AD server. > > The link between the machine and the AD server is secure for other > reasons and so SSL is not necessary (at least from our > server-manager's perspective). > > The MS documentation does not indicate that this is possible, but > essentially in order to update passwords you need to either have SSL, > TLS, or (undocumented) set the LDAP_OPT_ENCRYPTION = 1 on the LDAP > connection. (Incidentally, LDAP_OPT_ENCRYPTION is defined as 0x96) [1] > > I have one report of the undocumented option being possible in VB.NET > which seems to indicate to me that AD itself supports changing > passwords *without* SSL or TLS. It's just a matter of figuring out > exactly how VB.NET (or other .NET languages, I presume) does it. For, > I hope, obvious reasons, I'm not planning on using VB unless it's > absolutely necessary. In fact, I think it shouldn't be necessary. > > However, as far as my research shows, setting the option is > unsupported in PHP [2] (language I have most experience with), Python, > and now I've come to Perl. My thinking was that if it's possible > anywhere, the Perl folks would have figured it out. > > I've searched Perl documentation on setting this option and doing > non-SSL password changes and I can't seem to find any hint that this > is possible. If you know how to set this option or how to achieve it > please let me know! > > [1] http://msdn.microsoft.com/en-us/library/aa367019(v=vs.85).aspx > [2] http://bugs.php.net/bug.php?id=50924 > > Sam > This is how I set the password in AD: http://search.cpan.org/~karman/Net-LDAP-Class-0.26/lib/Net/LDAP/Class/User/AD.pm#password([plain_password]) read the source for the password() method. IIRC, SSL or TLS was not required, but binding in the initial LDAP connection with a user with privileges to set the password via LDAP was. I could be wrong about the SSL/TLS (it's been a few years...). -- Peter Karman . http://peknet.com/ . pe...@peknet.com