Tuesday, May 15, 2007
Trading in trust
I can't sleep. This evening at work, I was discussing my growing stable of applications with a need for user authentication, and how these databases may use different forms of id check (password, fingerprint, etc), need to be geographically separated and in the control of different groups, and yet sync with each other because the same person is listed across them and would very much like single sign-on and other such pizzaz. It's a problem none of us saw coming.
The easy solution? Define a master database structure that has fields for all the possible identity mechanisms and another table mapping from this master to app db specific login names. Everyone syncs with this master.
So easy to screw oneself there, assuming partners whose apps are deployed with ours will not mind having their user accounts also thrown into the soup bowl.
I'm exploring OpenID. It does a brilliant job of decentralised identity verification, but I've realised my problem is two-fold. I need to verify identity, and I need to know their trust level across the system, without re-specifying it for each id within each app's db. OpenID doesn't trade in trust. I run just two production trust databases at the moment (in ZODB and PostgreSQL) with a third coming up (SQL Server), and syncing between them is bad enough.
What do I do with tens of apps supporting tens of thousands of users? (Thankfully not millions, but thanklessly no more than a few hundred per each trust category.)
If you're the kind to be sleepless at night considering similar problems, I'd very much like to be working with you.
The easy solution? Define a master database structure that has fields for all the possible identity mechanisms and another table mapping from this master to app db specific login names. Everyone syncs with this master.
So easy to screw oneself there, assuming partners whose apps are deployed with ours will not mind having their user accounts also thrown into the soup bowl.
I'm exploring OpenID. It does a brilliant job of decentralised identity verification, but I've realised my problem is two-fold. I need to verify identity, and I need to know their trust level across the system, without re-specifying it for each id within each app's db. OpenID doesn't trade in trust. I run just two production trust databases at the moment (in ZODB and PostgreSQL) with a third coming up (SQL Server), and syncing between them is bad enough.
What do I do with tens of apps supporting tens of thousands of users? (Thankfully not millions, but thanklessly no more than a few hundred per each trust category.)
If you're the kind to be sleepless at night considering similar problems, I'd very much like to be working with you.
ext_2586 — May 15, 2007 5:05:23 AM — # ↩
karmakurma — May 15, 2007 7:49:35 AM — # ↩
Kiran Jonnalagadda — May 15, 2007 8:09:12 AM — # ↩
a5hok — May 15, 2007 12:37:44 PM — # ↩
appaji — May 15, 2007 5:44:34 PM — # ↩
Anonymous — May 15, 2007 11:17:33 AM — # ↩
What you need is identity federation.
Look at http://en.wikipedia.org/wiki/Federated_identity
Anonymous — May 15, 2007 11:18:46 AM — # ↩
What you need is identity federation.
Look at http://en.wikipedia.org/wiki/Federated_identity
Regards
Kanti
Anonymous — May 15, 2007 1:09:50 PM — # ↩
You may want to check out Atlassian's Crowd server (http://www.atlassian.com/Crowd). The server supports LDAP and other custom authentication systems you may already have. They are also building in support for OpenID with the next release.
Kiran Jonnalagadda — May 15, 2007 1:19:34 PM — # ↩
Interesting, but the product's not open source and the pricing is way beyond what I can justify. I don't mind closed source components as long as they're components with clear inputs and outputs that I can replace wholesale should it ever come to that, but a user database server is too fundamental to not have total control over.
ext_41405 — May 17, 2007 4:01:37 PM — # ↩
Open id to (my blog url) login to few places. Its working well.
Anonymous — May 17, 2007 10:49:19 PM — # ↩
I know, no help of course, but had to throw in my rant as well :)
Rads
karmakurma — May 18, 2007 2:41:30 AM — # ↩
Anonymous — Jun 2, 2007 1:21:25 PM — # ↩
Meta-directory could be an option worth exploring.
Have used CriticalPath's meta-directory which is a commercial product and it works beautifully in a highly user intensive environment (nih.gov uses it) with many hetrogeneous authenication systems.
OpenLDAP Server implemented as meta-directory could meet your needs.
~Anthony