OSCON 2006 was a big success last week. Lots of buzz generated around the bounty program for OpenID. A couple of questions came up while I was roaming around on the showroom floor that I’d like to address here.
First off, there is still a bit of confusion between centralized v. federated identity.
OpenID is a federated identity system. Great. What the heck does that mean anyways?! Technically it means the ability of a user to login to multiple systems or even organizations. Yes, that is an insanely simplistic view of it and I could probably go on for hours about it but I won’t … you’re welcome …
On the other end of the spectrum we have the centralized identity solutions. The obvious example here is that of Microsoft’s Passport.net. You can get a login to Passport that allows you to login to all of their services (MSN, Messenger, Mail, etc) as well as a few outside services that are part of the Passport network. The problem with centralized identity like this is that I’m stuck with the network; if they do evil things, there is no recourse for me. Industry is fickle and people don’t want to be at the whim of the bottom-line (”What if we delivered *more* ads to the users?! We’ll triple our profits!!”). If there is one thing you take away from this post its that OpenID is not Passport. Take just about everything that Passport is and reverse it. I have to wonder if that’s how Brad came up with it in the first place.
The best example I can give to describe how OpenID is different from Passport and the centralized model is to look at the cell phone space (bear with me here). I consider my cell phone number to be an identifier of me. Now, with cell phone number portability, I can take it with me when I move from provider to provider. I’ve had my last number with 3 different providers. This just great. Even if a provider goes out of business or does “bad things” I can keep my number and change providers. Now apply this to OpenID. I can go to a provider and get a free OpenID account and use that or, I can get my own domain and do it there. The best part about this is its like being able to bring up your own cell network; I can land a box under my desk behind my DSL line that serves up my identity. That’s pretty cool (albeit not very scalable/wise/etc. from a single-point-of-failure standpoint).
The major downer here, and one that will hopefully be addressed soon, is the fact that if you’re foo.identityprovider.com and identityprovider.com goes belly up, so too does your identity. I don’t have a good answer for this other than “we should fix this”. Its a problem for people that want to rely on an identity provider to handle everything for them (not many people will want to run their own OpenID servers).
As a final note, I’ll mention the fact that even if all of the companies supporting OpenID go belly up, OpenID will still exist. There is no cabal. If you have a web server that can run PHP, Perl, Python, Ruby, Java or .NET (BTW - those libraries are all open source), then you can set yourself up with an OpenID server and co-exist with the rest of the global OpenID eco-system.