Sandro Duarte wrote:
> Justin,
> 
> Have you had any luck about this?
> 
> I'm having the same problem here...
> 
> TIA,
> 
> Sandro
> 
> Justin Grudzien wrote:
>> I am building an application in Rails using ruby-net-ldap and I am
>> trying to figure out how to change passwords in Active Directory. Does
>> anyone have any experience with this using the ruby-net-ldap gem? I know
>> that I remember seeing an example on the web somewhere that showed how
>> to do this using the depot application from the Rails book but for the
>> life of me I can't find it again. :( Any help would be greatly
>> appreciated.

I did figure it out.

My explanation is as follows:

Convert your OLD and NEW passwords into some goofy kind of unicode. 
Create a two element array (1. delete old password element, 2. Add new 
password element) that modifies the unicodePwd attribute (represented as 
:unicodePwd). Run an ldap modify on the proper dn for the user passing 
it both operations from the array (if you need to know how to get the 
user dn let me know but there are lots of examples out there.). If it 
succeeds it will update the password!


def self.ct2uni(cleartextpwd)
    quotepwd = '"' + cleartextpwd + '"'
    unicodepwd = Iconv.iconv('UTF-16LE', 'UTF-8', quotepwd).first
    return unicodepwd
end

oldUniPW = ct2uni( opassword )
newUniPW = ct2uni( newpass )

ops = [
    [ :delete, :unicodePwd, [oldUniPW] ],
    [ :add, :unicodePwd, [newUniPW] ]
]

unless( ldap_con.modify :dn => dn, :operations => ops )
    ret[ :status ] = false
    ret[ :message ] = "bad:!:Error changing password for user #{login}."
    return( ret )
end

Justin
-- 
Posted via http://www.ruby-forum.com/.

--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups "Ruby 
on Rails: Talk" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to 
[email protected]
For more options, visit this group at 
http://groups.google.com/group/rubyonrails-talk?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to