BlogMatrix
 

OpenID: sharing identity details; hCards and microformats

edit David P. Janes 2006-09-12 15:16 UTC add comment  ·  ·

OpenID has a protocol extension that allows some simple identity information to be shared (i.e. so you don't have to type in the same info over and over again in every site you visit).

Here's the spec and here's what information is sharable:

  • nickname
  • email
  • full name
  • date of birth
  • gender
  • postal code
  • country
  • language
  • timezone

My personal opinion is that the "Simple Registration Extension" was a mistake as it confuses what OpenID is all about, is inherently incomplete and doesn't build upon what's already out there. OpenProfile has taken the extra step and hooked up with vCard but let me propose something else based on microformats and hCard.

One issue I have with the utility of hCards is that often, as they are seen in the wild, they are basically trivial. From here:

<address class="author vcard">
  <a class="url fn" href="http://theryanking.com">Ryan</a>
</address>

Note that this is still good -- this marks real semantically useful data. However, I always get the feeling that this could be ... better, particularly since we know Ryan (King) has a real hCard right here with a mugshot and everything!

Why not build upon the concept of the identity URL? In particular, let's say that that http://theryanking.com is Ryan's identity URL. In addition to the link and meta tags added to the header for OpenID, let's add one for "person identity":

<link rel="identity.hcard" title="Ryan" href="http://theryanking.com/blog/contact/#vcard" /> 

We now use this in two different ways.

Firstly, from an OpenID perspect when Ryan creates a new account using http://theryanking.com, the consumer can automatically go get Ryan's hCard at http://theryanking.com/blog/contact/#vcard.

Secondly, we can indicate in Ryan's trivial hCard (seen on the microformats blog) that we can get Ryan's real hCard:

<address class="author vcard">
  <a class="url fn x-identity.hcard" href="http://theryanking.com">Ryan</a>
</address>

This has several nice attributes:

  • We don't have to add verboten hidden data to indicate the location of the "best hCard"
  • It's totally backwards compatible -- if we just used "url" we'd have to check too many spurious links for non-existent information
  • It builds open microformats and OpenID -- public identity parameters only have to be specified in one location
Other possibilities are also there, such as defining extensions for this type of link in RSS and Atom.

Note: x-identity.hcard and identity.hcard are possibly just placeholder strings for something better, so don't get bent out of shape by that.

Add Comment