openid-complex

Hat der erste Entwurf von OpenID Connect noch auf eine (übersichtliche) Seite gepasst, braucht der Draft der OpenID Foundation schon 7 unterschiedliche Spezifikationen.

Wieso müssen „Standard“-Organisationen wie das W3C (z.B. RDFa) oder der OpenID Foundation denn alles so unnötig kompliziert machen? Immerhin schafft es ja sogar Facebook seinen Authentifizierungsprozess auf einer Seite zu erklären. …und noch besser! Er lässt in drei Sätzen zusammenfassen:

  1. Hol dir über folgende URL einen Access-Token:
    https://www.facebook.com/dialog/oauth?
    client_id=YOUR_APP_ID&redirect_uri=YOUR_URL
  2. Häng ihn an folgende URL, auf den du den User weiterleitest:
    https://www.facebook.com/dialog/oauth?
    client_id=YOUR_APP_ID&redirect_uri=YOUR_URL&
    scope=email,read_stream
  3. Fertsch!

…dazu kommen eine weitere Discovery-Variante die Webfinger, host-meta, XRD, XRDS oder YADIS komplett ignoriert und eine Identity-API die SREG oder AX noch nicht einmal ähnelt!

Mike Jones, einer der Hauptentwickler der Spezifikation, schreibt zwar:

The design philosophy behind OpenID Connect is “make simple things simple and make complex things possible”.

Das ist aber nur die halbe Wahrheit. Webseitenbetreiber, die zukünftig einen OpenID Connect Login anbieten wollen, haben es in der Tat etwas einfacher, da sie sich auf die „Minimalanforderungen“ konzentrieren können. Seiten die einen OpenID Connect Provider stellen wollen haben aber folgendes Problem:

Authorization Requests can follow one of two paths; the Implicit Flow or the Authorization Code Flow. […]
The OpenID Connect Basic Client profile only documents Clients using the Implicit Flow. OpenID Providers MUST support both flows. […]

Damit begeht die OpenID Foundation wieder den gleichen Fehler wie bei OpenID 2.0. Am Schluss gibt es so viele unterschiedliche und halbfertige Implemenrierungen, dass man wieder auf SaaS-Dienste wie Janrain oder Gigaya zurückgreifen muss. Wozu braucht es dann noch einen „Standard“?

Warum denn immer 1000 Alternativen anbieten? Bei Facebook klappts ja auch ohne…

OpenWeb-Kolumne (wsm)

Damit das ganze Zeug über das ich so einmal im Quartal im Webstandards-Magazin schreibe nicht pure Science Fiction bleibt, hab ich mich die letzten Wochen mal daran gemacht, ein bisschen Federated Social Web für WordPress zu basteln!

Vor einigen Monaten kam Pepijn de Vos auf mich zu, ob ich ihm nicht bei einem „OStatus for WordPress“ (noch nicht runterladen! funktioniert noch nicht!) helfen wolle. Das damals größte Problem: Wie können wir so viele besehenden Plugins (pubsubhubbub, webfinger, …) wiederverwenden, ohne die Installation zu kompliziert zu gestalten. Da dieses Problem mittlerweile behoben ist und auch das Salmon-Plugin einigermaßen funktioniert, ist es Zeit für einen Test!

Ich würde mich freuen, wenn ihr zwei, drei oder vier Leser da draußen mal diesen Blog bei Status.net oder Identi.ca (oder bei jedem anderen StatusNet-Klon) abonnieren und wie wild auf diesen Artikel antworten könntet. Dazu müsst ihr einfach pfefferle at notizblog dot org folgen:

…und auf diesen Post antworten:

Was bisher funktioniert:

  • Artikel landen in Echtzeit bei StatusNet/Identi.ca (pubsubhubbub)
  • Antworten auf diese Artikel landen als Kommentare bei WordPress (salmon)

Zukünftige Features:

  • Kommentare auf WordPress-Seite sollen auch nach StatusNet/Identi.ca geschrieben werden
  • Bessere Integration in BuddyPress
  • …alles was euch noch so einfällt!?!

Ich würde mich sehr über Feedback, Fragen, Anregungen, Kritik, … freuen. Viel Spaß beim testen!

…sollte alles gut funktionieren, werde ich die Plugins dann nächste Woche veröffentlichen, also TESTEN!

Etwas älter als zwei Jahre, 30 Folgen und wieder aktiv 🙂

Pünktlich zu Weihnachten haben wir den OpenWeb-Podcast wiederbelebt. Nach einer langen Sommer+Herbst-Pause haben wir (Christian und ich) uns das Thema Diaspora* vorgenommen.

Viel Spaß beim hören!

Den Podcast abonnieren:

haudio

Google veröffentlicht Tests mit OpenID
Google hat vor einigen Tagen ein paar nette Dokumente/Demos/Videos veröffentlicht, die die Implementierung von OpenID vereinfachen soll.

The website at openidsamplestore.com was built to demonstrate how a website that already allows users to login can help those users (and new users) leverage OpenID to login.

OpenID-Provider gibt es genug, jetzt ist es an der Zeit auch mal ein paar Relying Parties zu bauen.

» Google’s Internet Identity Research – Overview of OpenIDSampleStore
» OpenID Sample Store
» OpenID Videos

Extensible Resource Descriptor
Am 1. November wurde die erste finale Version von XRD veröffentlicht. XRD ist eine Art API-Beschreibung in XML und eine vereinfachte Variante von XRDS/XRDS-Simple (wird z.B. von OpenSocial verwendet), außerdem basieren OStatus und Webfinger auf XRD.

» Extensible Resource Descriptor (XRD) Version 1.0
» XRDS-Simple 1.0 Draft 1

Simple Web Discovery
XRD ist, wie schon erwähnt, wesentlich simpler als XRDS oder XRDS -Simple, aber manchen ist es immer noch zu komplex.

Simple Web Discovery (SWD) defines a HTTPS GET based mechanism to discover the location of a given type of service for a given principal starting only with a domain name.

» Simple Web Discovery (SWD)

Ach ja… Carsten Pötter bloggt übrigens wieder über OpenID. Lesen!

Webfinger ist ein relativ neues Web-Protokoll um Informationen über einen User anhand seiner E-Mail – Adresse zu erfragen (um z.B. auch Mail-Adressen zu einer OpenID zu machen). Der Name und die Idee stammt von einem „alten“ Linux-Protokoll namens finger:

Finger zeigt Informationen über einen bestimmten Benutzer auf einem lokalen System oder auf einem fernen Computer an oder dient zur Feststellung der Verfügbarkeit eines bestimmten Hosts in IP-Netzwerken.

Quelle: Wikipedia

Damit diese beiden Protokolle nicht nur den Namen teilen, hat Chuck Houpt ein kleines Script geschrieben, mit dem sich Webfinger-Informationen auch über die Konsole abfragen lassen.

Braucht wahrscheinlich kein Mensch und ist trotzdem (oder vielleicht gerade deshalb) fantastisch!

Durch einen Artikel auf ReadWriteWeb (5 Great YQL One-Liners) bin ich nach langer Zeit mal wieder auf Yahoos YQL-Plattform gelandet und habe nicht schlecht gestaunt, was die Yahoo Query Language mittlerweile alles leistet (mehr über YQL hier). Ich hatte z.B. keine Ahnung, dass man auch eigene table definition schreiben kann und dass es auch schon eine ziemlich fleißige Community um diese Definitionen gibt.

Meine Favoriten sind:

Microformats

select * from microformats where
url='http://wait-till-i.com'

…findet diverse Microformats. » Direct Link

Mehr dazu hier: SELECT * FROM microformats

OpenID

select * from openid.discover where
normalizedId="http://www.yahoo.com/"

…klassische OpenID-Discovery. » Direct Link

select * from openid.yadis where
uri="http://www.yahoo.com/"

…YADIS-Discovery. » Direct Link

…und es gibt noch ’ne Reihe anderer OpenID Queries… es sollte sogar möglich sein einen kompletten OpenID-Client mit YQL zu bauen.

OAuth

select * from oauth where uri='http://example.com'
and consumerKey='asd123' and consumerSecret='zxc456'
and callbackUri='http://example.com';

…sendet einen OAuth-Request. » Direct Link

pubsubhubbub

insert into pubsubhubbub.publisher
(hub_url, topic_url) values
('http://pubsubhubbub.appspot.com/publish',
'http://developer.yahoo.com')

…sendet ein Update an das angegebene Hub. » Direct Link

Webfinger

select * from webfinger where
account='pfefferle@gmail.com'

…Webfinger-Discovery. » Direct Link

OpenSocial

select * from opensocial.people

…sendet eine OpenSocial People-Anfrage. » Direct Link

Social Graph API

select * from socialgraph.lookup where
q = "notizblog.org" AND edo = "1"

…ermöglicht Zugriff auf Googles Social Graph API. » Direct Link

Atom

select * from atom where
url='http://notizblog.org/feed/atom'

…interpretiert Atom-Feeds mit allen möglichen Erweiterungen, beispielsweise der ActivityStreams-Extension. » Direct Link

Vielleicht bekomm‘ ich die Tage ja auch mal eine Query zusammen 🙂

Letztes Mal sind die Notizen dank zu viel Arbeit und StarCraft II leider ausgefallen, aber das wird nicht einreißen… hoffe ich zumindest 🙂

Der Browser und das Federated Web

Ein großes Problem im dezentralen Web: Der gemeine User kann nichts mit Identifiern anfangen, weder mit URLs (wie es NoseRub versucht hat) noch mit E-Mail Adressen (wie es Status.Net mit Webfinger versucht). Austin King zeigt auf Mozilla Webdev wie man dem, mit Hilfe des Browsers und der JavaScript Methoden registerProtocolHandler und postMessage, entgegen wirken kann. XAuth funktioniert übrigens nach einem ähnlichen Prinzip.

» RegisterProtocolHandler Enhancing the Federated Web

Thunderbird Contacts

Endlich gibt es das Contacts-Addon auch für den Thunerbird, denn da gehören sie ja auch hin.

The goal of add-on is to experiment in evolving the address book of Thunderbird beyond what it currently is today. Thunderbird Contacts isn’t a standalone address book, instead it understands that your contacts live on the web as much as they do inside Thunderbird. The add-on can pull in contact data from various services where your contacts already exist.

» Thunderbird Contacts

AOL und der Webfinger

AOL implementiert Webfinger für @aol.com und @aim.com.

<?xml version='1.0' encoding='UTF-8'?>
<XRD xmlns='http://docs.oasis-open.org/ns/xri/xrd-1.0'>
    <!-- Host-wide Information -->
    <Link rel='http://specs.openid.net/auth/2.0/provider' href='https://api.screenname.aol.com/auth/openidServer'>
        <Title>OpenID 2.0 Provider</Title>
    </Link>
    <!-- Resource-specific Information -->
    <Link rel='lrdd' template='https://api.screenname.aol.com/auth/describe?uri={uri}'>
        <Title>Resource Descriptor</Title>
    </Link>
</XRD>

» Webfinger enabled for @aol.com

Cliqset Salmon demonstration
Blogposts werden bei Twitter kommentiert oder bei Facebook ge-„liked“, nur das Blog bekommt relativ wenig davon mit und sein Autor darf deshalb auf die Suche nach den diversen Reaktionen gehen. Mit dem Salmon-Protocol soll damit Schluss sein. Kommentare auf Facebook könnten dank Salmon zusätzlich an den Ursprungs-Artikel zurück „geführt“ werden und somit die Kommunikation von den verteilten Netzen wieder an einer Stelle vereinen. Cliqset zeigt in einem Screencast, wie Salmon in Kombination mir Webfinger und Pubsubhubbub sogar dezentrales microbloggen zulassen.

» Cliqset Salmon demonstration
» Salmon-Protocol

OpenStack oder OpenStack?
Der OpenStack hat sich als Begriff für die offene Alternative zu Facebook-Connect durchgesetzt: OpenID + OAuth + Portable Contacts + Open Social + XRDS/XRDS-Simple/XRD/Webfinger. Bisher! Leider entfremdet Rackspace OpenStack jetzt für das eigene Open Source Server-Cloud-System.

Innovative, open source cloud computing software for building reliable cloud infrastructure.

…es wäre schade wenn man in Zukunft aus jedem Buzzword gleich ein Trademark machen müsste um seine Bedeutung längerfristig zu sichern.

» OpenStack Open Source Cloud Computing Software

OStatus LogoDie OpenMicroBlogging-Spezifikation war eine echt nette Idee und hat auch gar nicht schlecht funktioniert… zwar etwas umständlich aber immerhin ein Anfang.

Nach fast zwei Jahren arbeitet StatusNet (früher laconi.ca und Erfinder von OMB) jetzt an einem Nachfolger. Die neue Spezifikation heißt OStatus und ist eine Art „Best Off“ bestehender Open Web Standards:

…und wenn ich es richtig verstanden habe, scheint das in der aktuellen Version von StatusNet1 (Version 0.9) auch schon ansatzweise zu funktionieren.

Plattformübergreifend Echtzeitkommunikation auf Basis offener Standards… schöne neue Welt 🙂

1 StatusNet (vormals Laconica) ist eine in PHP entwickelte freie Software für Mikro-Blogging-Dienste, die den OpenMicroBlogging-Standard implementiert. Damit ermöglicht StatusNet eine offene Kommunikation zwischen Online-Communitys mit zu Twitter vergleichbarer Funktionalität. (via Wikipedia)