Jump to: navigation, search

OpenID + microformats Brainstorming


This is a public space for capturing some ideas on how OpenID and Microformats can work together.

Relevant Microformats

Ideas for use

Replace SREG attributes with hCard

Replace Attribute Exchange attributes with hCard

Many attributes in the attribute registry established at are reinventions of properties defined in vCard (and thus hCard). It would be preferable to reuse such vocabulary rather than reinventing it (see also naming-principles).

OpenID whitelist authentication for private hCard

This brainstorm has been superseded by sign-in with IndieAuth to show more personal info

A blog can use the URLs in its XFN Friendly blogroll as an OpenID whitelist to provide more information to those that login to the blog with one of those URLs. This technique can be used to provide more detailed private hCard contact information to only a subset of people (or services). You could also build the whitelist of OpenIDs by parsing data out of a social network API or an aggregated list of XFN friends of friends (following the ideas on social-network-portability).

Tom Morris has implemented this on his blog, and on a "family extranet".

In his blog post MicroformatID, Jeremy Keith explained how Tom's blog works:

Tom has an hCard on his blog. By default the information provided is fairly basic: an email address, a URL and a vague physical address. Right by the hCard, there’s a simple form that allows you to log on using OpenID. If you log on and you’re on a white list of Tom’s friends, the hCard is updated to reveal more information: telephone numbers and a complete physical address.

That’s pretty clever. And when you consider that OpenID is a URL-based authentication system and XFN is also based around URLs, it would be pretty easy to have the white list correspond to an XFN list on the same page as the hCard.

hCard | OpenID | XFN… it’s like Unix pipes for the Web: small pieces, loosely joined.

Tom recently explained this a bit more in his blog post Are you on the list? / Once again, in English:

Here's what I'm trying to do. I have an hCard on my blog - over in the sidebar. I want to make it so that the people who want to get my contact details can. I've had the fun experience of auto-dialling with Skype when microformats are present, and being able to download phone numbers onto my phone. Basically, I want to simulate electronically the situation I have when one gives their business card out to someone without having to carry bits of card around with me. The user experience should something like this:

User: "I know Tom. I want to contact him by phone or send him something by post." User goes to my blog and enters their OpenID. If user is on list, user sees extra information - my home address and phone numbers. This is all in an hCard, so they can use hCard tools like Operator to use the information in a more useful way.

This is important, as often people want to make data available, but not to everyone. OpenID is a good way of letting people authenticate, but not as intrusive as having them sign up and have to give you their e-mail and so on.


Ideally, when we have a few more pieces in place, we will have it so that we can do automatic OpenID inference - if you have a WordPress blog and I list you as a friend on say, Flickr and Twitter, then you can get access to my personal details. Personal details are also just the tip of the iceberg - everyone has things which they want only some of their friends to be able to see or use.

The general overall plan is to make it so that network connections can be used as a way of providing or denying services. Some people are using this 'graph' of connections to determine whether or not you are a comment spammer.

Steve Ivy recently started analyzing how to implement this and diagramming processes:

<li class="vcard">
    <!-- openid url on the person's name -->
    <a href="" rel="acquaintance colleague"
          class="fn url openid">Chris Messina</a>
    <!-- blog url on the blog name -->
    - <a href="" class="url" 
            title="Factory Joe">Factory Joe</a>

Though it's not a standard, conceivably a spider processing whitelists could use the "openid" class to determine that a url page is an openid for the contact. Alternatively (and more definitively) follow each url and check to see if it is an openid url (<link rel="openid.provider"> or <link rel="openid.delegate"> perhaps?) -- Steve


See also

openid-brainstorming was last modified: Wednesday, August 13th, 2014