hCard als Attribute Exchange für OpenID

„OpenID ist ein dezentrales System zur Identifizierung“ (WikiPedia).
OpenID bietet die Möglichkeit, Login Daten an zentraler Stelle anzugeben und diese als Authentifizierung für andere Webseiten zu verwenden. Simple Registration Extension (kurz SREG) ist eine Erweiterung zu der OpenID Authentifizierung, der einen simplen Profil-„Austausch“ erlaubt.
SREG ist, wie der Name schon sagt, „nur“ ein Simples Format, deshalb wurde eine Erweiterung mit dem Namen Attribute Exchange (AX), welches wesentlich mehr Informationen beinhaltet, entwickelt.

Chris Messina stellt sich in seinem Artikel „hCard for OpenID Simple Registration and Attribute Exchange“ die Frage warum bei der Definition der ersten AX-Typen (genauso wie bei SREG) versucht wird, Profil-Daten neu zu definieren, anstatt auf bestehende Standards wie die vCard (RFC2426) zurück zu greifen. Er argumentiert sein Anliegen mit der weiten Verbreitung der vCard und seines XHTML Pendants der hCard:

Most importantly, however, hcard and vcard is already widely supported in existing applications like Outlook, Mail.app and just about every mobile phone on the planet and in just about any other application that exchanges profile data.

Chris hat sich die Mühe gemacht, die drei Standards einander gegenüber zu stellen:

Attribute | SREG | AX | vCard
Nickname | nickname | namePerson/friendly | nickname
Full Name | fullname | namePerson | n (family-name, given-name) or fn
Birthday | dob | birthDate | bday
Gender | gender | gender | gender
Email | email | contact/email | email
Postal Code | postcode | contact/postalCode/home | postal-code
Country | country | contact/country/home | country-name
Language | language | pref/language | N/A
Timezone | timezone | pref/timezone | tz
Photo | N/A | media/image/default | photo
Company | N/A | company/name | org
Biography | N/A | media/biography | note
URL | N/A | contact/web/default | URL

Update: Chris Messina hat eine vollständige Liste der Attribute im Microformats Wiki erstellt.

AX und vCard/hCard haben zwar weitestgehend die gleichen Attribute, unterscheiden sich jodoch in der Bezeichnung, was es Entwicklern unnötig schwer macht, die verschiedenen Formate zu implementieren.

Tantek Çelik (einer der Microformats Ur-Väter) beschäftigt sich weiter mit dem Problem und definiert mögliche Schritte um die hCard als Attribute Exchange für OpenID zu verwenden:

URLs for properties. Every SREG property has a URL in its Attribute Exchange (AX) version that defines that property. hCard does too, through the hCard profile. However, there are two differences which may be seen as shortcomings. Currently the hCard profile on microformats.org is in a wiki, and not proper XMDP (there is an hCard XMDP profile at W3C that some are using), and, URLs for specific properties use # fragment identifiers.

Soweit ich das ganze verstanden habe ist AX sowieso eine weitgehend offene Definition, welche es ermöglicht Typen über URIs zu definieren. D.h. es sollte möglich sein z.B. den vCard/hCard-Typ fn folgendermassen zu implementieren:

openid.ax.type.fn=http://microformats.org/profile/hcard#fn

Bitte korrigiert mich falls ich etwas falsch verstanden habe.

Ich finde die Idee, Microformats für OpenID einzusetzen, sehr gut und bin generell für die Nutzung von offenen Standards. Je höher die Wiederverwendbarkeit von Standards, desdo geringer der ist die Barriere sie einzusetzen. Jeder der schon mehr als ein fremdes System über eine proprietäre API angebunden hat wird mir da sicher zustimmen.

Weiterführende Informationen:

OpenID Brainstorming im Microformats Wiki

Hey there, RSS reader! You’re one of a special few, choosing this old-school yet awesome way of staying informed. Kudos!