I got a note from Myk Melez yesterday who had a great question about OpenID:
Hey Scott,
I went to open an account on a web site today, and it offered to let me log in via OpenID. It pointed me to openid.net to get more info about OpenID, which told me that I can run my own OpenID provider or “use a third-party identity provider”.
My (perhaps stupid, but I’m an OpenID newbie and very much an end user for this technology) question is: what third-party identity providers can I use, and how do I pick between them?
-myk
Doing OpenID stuff all-day, every-day I sometimes forget that the answers to obvious questions aren’t all that obvious. This is question falls into that category.
As some people may know, OpenID is a decentralized protocol for doing single sign-on on the web. An OpenID is a URL that you can use to sign into sites that support OpenID. These OpenID URL’s look something like user.foo.com (for example, mine is kveton.myopenid.com). OpenID’s are served up by OpenID identity providers (sometimes referred to as an IdP). In the first example, the identity provider would be ‘foo.com’, in my case, its MyOpenID (full disclosure: MyOpenID is developed by JanRain the company I run). Because of its decentralized nature, it means anybody can provide OpenID identity services and participate in the complete eco-system. There is no membership fee to join, committee to cajole or people to convince. If you bring up an an identity provider that conforms to the OpenID specification, you can deliver OpenID’s that can be used on any site that supports OpenID’s.
There is a growing number of these identity providers in the marketplace today. The complete list can be found here. We run MyOpenID.com which we strive to be completely up-to-date with the OpenID protocol as well as delivering new features to help users do more with their OpenID’s. Verisign and claimID are also great OpenID identity providers as well. The best thing here is that consumers have a choice in the marketplace. If you don’t like your OpenID identity provider you can switch to a different one.
So what do you need to think about when choosing an OpenID identity provider? Since your OpenID is a URL, you will want to make sure you pick one that you know will be around for awhile. As you go around the Internet using your OpenID you’ll be making contributions that are linked back to your OpenID (effectively your identity). If your provider should go out of business or not keep up with features and the protocol, you could lose access to that identity that you may have spent considerable time using. You also want to look at what kind of features the identity provider has. Do they let you customize it? Control your personal data to your liking?
For the vast majority of users going with a well-respected OpenID identity provider will meet their needs. However, some people might want to use their own domain because no matter how great the identity provider is, they may not want their identity associated with it. In that case, you’ll want to look at delegation. With just two lines of HTML and your own domain, you can delegate your OpenID to any provider you like. So instead of having to use user.foo.com you could delegate you.yourdomain.com to user.foo.com and use the you.yourdomain.com to sign in at all of the OpenID enabled sites. If the user.foo.com provider goes away or does bad things, you simply change the delegation to another provider that supports OpenID. You still have you.yourdomain.com so the contributions you’ve made across the Internet will still link to you. This is definitely a great feature for “early adopters”.
I got a note back from Myk earlier today:
Yes, thanks, it helps enormously! Before this info I had no idea how to get an openID. Now I’ve got one from myopenid.com (mykmelez.myopenid.com) and am using delegation so that my ID can be melez.com/myk.
With the following two lines of HTML he was able to accomplish this:
Its that easy. Thanks for the question Myk.
Update: I’ve tried to make the delegation information more clearer. Thanks for the heads-up Ian.