On 13 Oct 2014, at 17:12, VANOLE, MICHAEL J <mv5...@att.com> wrote:

> Thanks Dieter,
> 
> Our ldap is compiled with sasl, but I don't think I asked the question 
> correctly.
> 
> Sun One must be doing the MD5 (or whatever) encryption locally and applying 
> the userPassword that way. I just have to specify what I want via the 
> supportedSaslMechanisms attribute. Openldap does not like this.

Ah, I think you're talking about password hashing (see RFC 2307 5.3), *not* 
SASL. Password hashing is generally incompatible with SASL. It just so happens 
that you are using MD5 to hash your password, and you found a SASL mechanism 
also with MD5 in the name...

NB the unsalted version of MD5 is really insecure and you should not use it for 
passwords. Google for "rainbow tables".

> 2. This excellent help: 
> http://blog.gauner.org/blog/2010/12/19/handling-salted-passwords-in-perl/ 
> using the ldap_md5 subroutine (I'm sure the others work just as well)
>       $userpass = "{MD5}" . pad_base64( Digest::MD5::md5_base64($clearpass) );
> 
> Then pass then as shown below. Both work great, though I'm sure there is 
> something to be cautious about.

Yes there is definitely an issue with doing that. The server may not allow the 
client to pre-encode the password, and it may *require* that you send it the 
plaintext password in the add/modify operation so that it can do some password 
validation (quality checking) on the value. That cannot be performed if the 
client has pre-encoded the password.

Anyway, this is mostly not related to Net::LDAP - you need to talk to the 
OpenLDAP folks to see if they will help you.

Chris

Reply via email to