Vor ein paar Wochen wurde XRDS-Simple 1.0 (Draft 1) veröffentlicht. XRDS-Simple ist ein Standard, der auf bestehenden Standards der XRI Community aufbaut, auf den z.B. auch das von OpenID bekannte Yadis-Format basiert.

XRDS-Simple provides a format and workflow for the discovery of resources metadata, and other linked resources. As web services continue to grow, applications utilize a wider range of web services and resources across multiple providers. XRDS-Simple allows providers to document their resources in a machine-readable way, which can be automatically discovered by consumer applications.

XRDS-Simple bietet also ein recht simples Format um auf Services und andere „linked recources“ zu verweisen.

XRDS-Simple als zentraler ServiceCatalogue

Wie man dieses Format für das DataPortability Projekt nutzen kann hat Christian Scholz in seinem Post „The first Data Portability Use Case (somewhat technical)“ schön zusammengefasst.

Nehmen wir an, ich melde mich bei einem neuen Dienst an und möchte meine Daten, die ich an anderen Stellen im Internet angegeben habe, wiederverwenden. Um nicht alle meine Profil-URLs immer wieder per Hand angeben zu müssen, kam die Idee eines ServiceCatalogues auf.

Der ServiceCatalogue soll an zentraler Stelle alle Informationen die über mich im Web verfügbar sind (z.B. als hCard, XFN, FoaF, usw. formatiert) bereitstellen.

<XRDS xmlns="xri://$xrds">
  <XRD xmlns:simple="http://xrds-simple.net/core/1.0" xmlns="xri://$XRD*($v*2.0)" version="2.0">
    <Type>xri://$xrds*simple</Type>
    <Service priority="10">
      <Type>http://www.w3.org/2006/03/hcard</Type>
      <URI simple:httpMethod="GET">http://pownce.com/pfefferle</URI>
    </Service>
    <Service priority="20">
      <Type>http://gmpg.org/xfn/11</Type>
      <URI simple:httpMethod="GET" priority="10">http://twitter.com/pfefferle</URI>
      <URI simple:httpMethod="GET" priority="20">http://pownce.com/pfefferle</URI>
    </Service>
  </XRD>
</XRDS>

Das Beispiel zeigt z.B. die URL zu meiner hCard bei Pownce und meinen Freundesnetzen bei Pownce und Twitter. Um diese Information vor unerlaubten Zugriffen zu schützen, könnte die XRDS-Simple URL mit OAuth geschützt oder per OpenID AX angefragt werden.

XRDS-Simple mit AX abfragen

Um XRDS-Simple via AX anzufragen, müsste man zuerst ein AX-Schema definieren:http://dataportability.org/schema/serviceCatalogue Label service catalogue Description The url to a XRDS-Simple formatted service catalogue Example http://example.org/sc.xrds Formatting http://www.w3.org/2001/XMLSchema#anyURI

und unter http://dataportability.org/schema/serviceCatalogue bereitstellen. Leider funktioniert diese Art der Bereitstellung nur wenn einige OpenID-Provider diese AX-ServiceCatalogue-URL auch implementieren.

Bisher war für mich das klassische OpenID Prinzip (Sigle Sign-On) der einfachste und eleganteste Weg mich bei Seiten zu registrieren oder anzumelden… bisher! Tobias hat mich gestern auf einen Artikel von Nic Williams aufmerksam gemacht in dem er beschreibt wie man mit myOpenID aus OpenID ein Zero Sign-On macht.

myOpenID bietet neben dem klassischen Login auch SSL-Zertifikate:

Ihr Browser wird dieses Zertifikat nutzen, um Ihre Identität bei myOpenID, unter Verwendung von Transport Layer Security(TLS), zu bestätigen. Das Verwenden dieses Zertifikats vermeidet die Notwendigkeit empfindliche Daten, wie Ihr Passwort, eingeben zu müssen.

Firefox und Internet Explorer unterstützen diese Technik anscheinend auch schon seit den 90ern, es verwendet nur bisher keiner 😉

Die Einstellungen für myOpenID findet man unter „Kontoeinstellungen“ -> „Authentication Settings“.

zso-einstellungen.jpg

Nach dem Zertifikat erzeugen wird das erstellte Zertifikat beim Firefox automatisch an die richtige Stelle kopiert (Bei Safari ist ein Schritt mehr notwendig).

zso-firefox-alert.jpg

Im Firefox „Zertifikat-Manager“ sieht das ganze folgendermassen aus:

firefox-zertifikat-manager.jpg

Eigentlich war es das jetzt auch schon… Beim nächsten anmelden mit OpenID wird man jetzt nur noch gefragt ob man für das nächste mal angemeldet bleiben will:

ssl-zertifikat-login.jpg

Gigantisch! Keine Ahnung warum sich diese Art der Authentifizierung noch nicht weiter herumgesprochen hat, ich jedenfalls hatte keine Ahnung dass myOpenID SSL-Zertifikate unterstützt… um ehrlich zu sein wusste ich bisher gar nichts über Client SSL-Zertifikate und dass nahezu alle Browser sie unterstützen.

Also ab jetzt wirklich nie wieder Passwörter eintippen 🙂

openavatar-logo.png

…oder „nicht noch ein Avatar System“.

Auf Pierros Weblog bin ich heute auf Openavatar gestossen und war von der Idee ein OpenID Bild als Avatar zu verwenden zuerst begeistert:

Openvatar is your Openid avatar image (80×80). Your avatar appear beside your name when you participate (comments or other contents) on Openvatar enabled sites.

Beim näherem betrachten des Systems wurde ich aber sehr schnell enttäuscht. Openavatar bietet kein Plugin um ein in OpenIDs AX-Schema definiertes Image als Avatar anzuzeigen sondern „nur“ einen Service im Stil von Gravatar. Der einzige Unterschied zu dem Globally Recognized Avatar ist, dass anstatt der E-Mail – Adresse die OpenID URL zur Autentifizierung verwendet wird.

Beispielsweise: http://www.openvatar.com/avatar.php?
openvatar_id=9b2894b2fa12ea24c455f4be9331d3fe&size=50
&default="http://www.mysite.com/avatar.jpg"

Ich habe das ganze trotzdem einmal ausprobiert und mich testweise mit meiner myOpenID URL angemeldet und wurde noch einmal enttäuscht. Anstatt das in meinem OpenID Profil definierte Image zu verwendet fordert mich die Webseite auf, ein weiteres Bild hochzuladen.

openvatar-upload.jpg

Warum dieser Service? Eigentlich hat das System, außer für die Anmeldung, nichts mit OpenID zu tun und würde auch mit jeder x-beliebigen URL funktionieren. Ein Gravatar für die in OpenID verwendete E-Mail – Adresse oder ein über meinen OpenID Endpoint definiertes Pavatar (wie bei myOpenID) hätte es doch auch getan.

Leider ist es trotz DataPotablity und DiSo immer noch sehr weit verbreitet eigene Systeme zu entwickeln, anstatt bewährte Standards aufzugreifen und darauf aufbauend sinnvolle Services/Plugins zu schaffen.

Ein ähnliches Problem im Zusammenhang mit proprietären Formaten beschreibt Carsten Pötter in seinem Artikel über MyBlogLogs neue Features.

OpenID ist ab der Drupal Version 6.0 in das Core-System integriert und muss nicht mehr per Plugin nachgeladen werden:

OpenID support is built in, making it even easier for your visitors to become a member of your site. OpenID is a free and easy way to use a single digital identity across the internet. With OpenID, login to all your favorite websites and forget about the online paperwork.

Mit MovableType gibt es jetzt zwei weit verbreitete CM/Blogging Systeme die OpenID nativ unterstützen. Das bisher hauptsächlich in zentralen Services oder Communities (z.B. dopplr oder ma.gnolia.com) eingesetzte Login-System könnte durch die oft auch im privaten Bereich verwendeten CMS/Blogging Tools den Nutzen von OpenID nochmal enorm steigern.

Leider hab ich bis jetzt nicht herausfinden können in wie weit auch AX oder SREG unterstützt werden, vielleicht weiß es ja jemand von euch…

twauth steht für twitter+authentication und ist ein, für mobile Geräte gedachter, OpenID Provider basierend auf Twitter. Ausschlaggebend für den von Ian McKellar entwickelten Dienst, war der von Chris Messina verfasste Blog-Post „The OpenID mobile experience“ in dem er seine eher negativen Erfahrungen mit bisherigen OpenID Providern auf mobilen Endgeräten beschreibt.
Um den Dienst nutzen zu können sind folgende Schritte notwendig:

  1. Man muss twauth in seine Follow-Liste bei twitter hinzufügen.
  2. Danach kann man http://twauth.ianloic.com/<twittername> als OpenID Identity einsetzen.

Ich habe das ganze mal mit der mobilen Version von Ma.gnolia (m.gnolia.com) und iPhoney, einem iPhone Emulator für den Mac, durchgespielt.

twauth login

Nach dem Eingeben der OpenID URL wird man automatisch auf die Loginseite von twauth geleitet. Die Authentifizierung findet nicht wie im klassischen Sinn, über Benutzername und Passwort, statt sondern über eine 5 Stellige Zahl die man als „Private Message“ via Twitter bekommt.

twauth auth

Danach noch die entsprechende URL (in diesem Fall Ma.gnolia) bestätigen und fertig.

twauth confirm

Leider muss man nach der Anmeldung über twauth seine kompletten Daten per Hand ausfüllen, da twauth bisher weder SREG noch AX unterstützt. Außerdem muss man den oben beschriebenen Vorgang bei jeder Anmeldung wiederholen, da twauth noch kein Session-Management unterstützt.

Genau genommen bietet twauth also noch keine wirkliche Vereinfachung des Registrier- und Anmelde-Prozessen (es dauert im Gegenteil wahrscheinlich sogar länger), ich mag jedoch die Idee mit Twitter und der PM sehr und hoffe dass sich bei twauth in Zukunft noch einiges tun wird.
Mit SREG und einem simplen Session Management würde twauth schon einen sehr guten mobilen OpenID Provider abgeben.

OpenID Delegation ermöglicht es den OpenID Nutzern eine beliebige URL als OpenID zu verwenden. Für die „Delegation“ sind zwei <link /> Einträge im HTML-Header notwendig:

<link rel="openid.server" href="http://example.com" />
<link rel="openid.delegate me" href="http://id.example.com/" />

Der erste Eintrag (openid.server) gibt den Server an, der den eigentlichen OpenID Service anbietet, der zweite Eintrag (openid.delegate) gibt an, welches die eigentliche OpenID URL ist.

Bei den Arbeiten an hCard-Commenting kam mir die Idee, diese Art der „Delegation“ auch für Microformats, speziell hCards, zu verwenden.

<link rel="hcard.delegate me" href="http://example.com/hcard/" />

Der Vorteil dieser Variante wäre, dass man schon bestehende hCards wie z.B. die Profilseite von flickr (http://flickr.com/people/<username>) oder das Public-Profile von myOpenID (http://<username>.myopenid.com) wiederverwenden könnte, ohne sie nochmals im eigenen Blog veröffentlichen zu müssen.

<link rel="hcard.delegate me" href="http://www.flickr.com/people/pfefferle" />

Ein weiterer Vorteil der „Delegation“ ist, dass die Weblog URL meistens kürzer und viel einfacher zu merken ist, als ein Community Profil:

Weblog URL: https://notiz.blog
flickr URL: http://www.flickr.com/people/pfefferle

Einige WordPress Plugins wie z.B. das oben erwähnte hCard-Commenting oder hAvatar nutzen das Website Feld eines Blogs, um die URL einer hCard anzugeben und widersprechen dabei eigentlich ein wenig der Idee des „adapting to current behaviors“1 der Microformats Community. Wenn ich einen Weblog Eintrag kommentiere gebe ich eigentlich meine normale Blog-URL in das Website Feld ein, das heißt ich müsste eigentlich ein Verhalten ändern, was ich mit hCard-Delegation beibehalten könnte 😉

Aber der eigentliche Vorteil der „Delegation“ liegt in der zentralen Nutzung der hCard. Ich müsste im besten Fall also nur noch eine hCard anlegen und pflegen.

Yahoo! ID als OpenID

Nach den Gerüchten der letzten Tage, Google, IBM und Verisign würden sich OpenID anschließen, hat jetzt auch Yahoo! angekündigt, dass sie bis zum 30. Januar (2008) ihre Yahoo! ID, OpenID kompatibel machen wollen.

Once you enable your Yahoo! account for OpenID access, you can simply tell any OpenID enabled web site that you are a Yahoo! user. You will be sent to Yahoo! to verify your Yahoo! ID and password and then signed in to the web site. Its that easy! #

yahoo-id.jpg

Das würde bedeuten, dass die derzeit 120 Millionen OpenID Accounts auf einen schlag um 250 Millionen User-Accounts ansteigen würde.

via techcrunch

Blogger URL als OpenID

Auch Google bringt mit Blogger seinen ersten OpenID Provider ins rennen. Um seine Blogger-URL OpenID tauglich zu machen, muss man unter folgenden URL: http://draft.blogger.com/edit-profile.g einen Haken bei „OpenID für Blogs aktivieren“ machen.

blogger-openid.jpg

Bei aktivierter Option können Sie Ihre Blogs als OpenID-Identitäten verwenden.

Damit bietet Blogger, neben dem OpenID Sign-In auch einen vollwertigen OpenID Service an.

via bloggerindraft.blogspot.com

So wie es aussieht, scheint der Trend doch immer mehr in Richtung Offene Standards zu gehen und auch großen Systeme wie Yahoo! und Google öffnen immer mehr ihre Tore für Services und Daten-Portabilität. Mal schauen wie lange der Trend anhält 🙂

Weitere Links zum Thema: