tldr: should ldap passwords be cached within cloudstack?

Hi Guys,

I wanted to get your opinion on something. I seen a JIRA ticket for
adding support for multiple LDAP because if the single LDAP server
fails you lose access to your Cloudstack console. I plan to add
support for multiple ldap servers. But I've been wondering why not
cache passwords on cloudstack too?

So from what I understand when a user logs in their password is passed
down through all the user authenticators(I'm open to correction on
this) until it finds one that passes otherwise login fails. It
wouldn't be too difficult to utilize this implementation to support
caching of ldap passwords within cloudstack. I'll explain by example.

We have the following user account:
Account name: user1
Password set in cloudstack: cspass
Password set in ldap: ldappass

When user1 attempts to login with password cspass it hits the
cloudstack database and returns true and is successfully logged in.
When user 1 attempts to login with password ldappass it hits the
cloudstack database, fails tries against ldap successes and
successfully logs in.

My suggestion is to take their password on a successful login and
place it into the cloudstack database so in the event all LDAP servers
went down the user would be able to authenticate against the
cloudstack database.

Of course this has security issues.... one that comes to mind, if a
users ldap account becomes compromised and they need to change their
ldap password their old password will still work for cloudstack logins
until they login to cloudstack using the new one.

Reply via email to