Vor ungefähr drei Monaten hatte ich mir schon mal Gedanken zu den Schwierigkeiten der MicroID-Verifizierung gemacht:

Eine URL kann man auf zu viele verschieden Weisen schreiben, als dass sie eine valide ID abgeben könnte.

Schwierigkeiten bereiten die Seiten, die unterschiedliche URLs zulassen…

  • http://example.com
  • http://www.example.com
  • http://example.com/

…da sie zusammen mit der E-Mail – Adresse drei unterschiedliche Hash-Werte ergeben.

Ein möglicher Lösungsansatz wäre eine URI-Normalisierung, wie sie z.B. OpenID vorschlägt, einzusetzen.

Eine viel einfachere und fehlerunanfälligere Lösung ist das dynamische zusammenbauen der MicroID über die direkt aufgerufenen URI als Identifier:

  • http://example.com -> 19358536d8c443614bc7d861f4b050ee34a549b9
  • http://www.example.com -> 05c732700bfa89cd234bb7fc08cb673f7c0d88b8
  • http://example.com/ -> 9275b4dcd7cc2c997b2a5249420b422e937d36e0

(Benutzte E-Mail – Adresse: mustermann@example.com)

Beim verifizieren bräuchte man sich also nur noch auf die E-Mail – Adresse konzentrieren anstatt alle in Frage kommenden URI/E-Mail – Kombinationen durchspielen zu müssen.

Angelehnt an die, für Profile-URIs geschaffene URI-Services wie z.B. PURL (oder XMLNS für XML-Namespaces), schafft XRDSType.net einen zentralen und „community-neutral URIspace“ für XRDS-Simple Types.

Zum besseren Verständnis hier zwei Beispiele…

Profile-URI:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" 
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" dir="ltr">

  <head profile="http://gmpg.org/xfn/11">
...Code-Sprache: HTML, XML (xml)

XRDS-Simple Type:

<Service>
  <Type>http://gmpg.org/xfn/11</Type>
  <URI simple:httpMethod="POST">http://twitter.com/pfefferle</URI>
</Service>Code-Sprache: HTML, XML (xml)

Zwei wesentliche Aspekte für den Einsatz von XRDSTypes.net:

  • Besteht schon eine Profile-URI bzw. XMLNS wird dieser verwendet.
  • XRDSTypes soll ein community-unabhängiger Platz sein, um Type-URIs zu definieren.

Für Microformats könnten also die im Microformats Wiki definierten Profile URIs genutzt werden.

(via Mr. Topf)