Working with LDAP user accounts

We are creating an application that uses LDAP to authenticate.   We have the authentication portion working as expected but we also want to incorporate "change password" and "forgot password" options for the end users.  

What is the best way to accomplish this?  I assume we need a 3rd party integration to allow updates to the LDAP user accounts?   Thanks in advance for any tips.

Yep, I looked at all of those but I still am not sure how we go about updated the password for the accounts that reside in LDAP.   I have authentication working fine.