Single Sign on Solutions on the (Very) Cheap?
ATMosby asks: "I was asked today to look into how a single sign on can be implemented. Now part of the constraint is that is must be very cheap (and by that the powers that be really mean free!) Of course there are all sorts of legacy applications that are 'required' to work with this, ranging from java applications to ancient pc programs. I've poked around a bit and found some pointers to commercial software that seems to be able to due bits and pieces of the job, but nothing that will do everything and anything that might be thrown at it. Before I just go and tell folks "No bloody way!" does anyone have words of advice to offer on the topic? Stories of successful or wildly unsuccessful attempts? Commercial or otherwise?"
Normally, there's one obvious target for the mother repository - e.g. an existing Active Directory service for windows boxen, or an existing LDAP service or something.
So long as you can get at the data in this 'mother service' then, it's usually just a case of replicating the data in places where the other little apps can get at it. This means users will only be able to change their password using the mother service, but will be able to authenticate against any of the read-only daughter services.
So, if one of your legacy PC apps is hardcoded to authenticate against the user table in a database, then you write a nightly batch job that queries the mother serice (lets say it's LDAP), and writes the passwords into the legacy apps user table password column.
Of course, if different apps use different one-way encryption for their passwords, you may be a bit stuck.
-----
Where I work we were faced with the same problem, people didn't understand that if you change your windows password you also had to log in to the unix servers. Most people didn't know unix, and this made changing them very difficult. Additionally, the big brass wanted to know why some long time employees had the same password since 1984 when the unix network first came online, and why they werent forced to change them.
The solution we found, albeit messy, was to run LDAP plus Samba, forcing samba to act as a windows 2000 PDC and joining all the clients to that domain. This solved the password expiration problem, as we could set ldap values to tell samba when to expire user's passwords.
Another solution you may want to consider (one that we looked at but decided against due to the inability to make passwords expire) is pGina, a free open replacement for the windows logon dlls. http://pgina.xpasystems.com/