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…

3 Gedanken zu “OpenID Connect Complex

  1. Facebook bräuchte vermutlich auch mehr als eine Seite, um seinen Provider zu erklären. Der Authorization Code Flow ist für Geräte, die keine komplexen Benutzereingaben erlauben z.B. Bilderrahmen, die auf meine Flickr Fotos zugreifen. Wenn man mehr ermöglichen will, dann wird die Erklärung auch länger…

    • Hallo Axel,

      es benötigt sicherlich etwas mehr Doku den Facebook-Authorisation-Provider zu erklären, aber sicherlich nicht viel mehr… das ist aber auch eigentlich nicht der Punkt. Das Wunderbare an der Facebook API ist der klare Fokus! Facebook hat eine einfache API gebaut die jeder versteht, die ohne Libs innerhalb von wenigen Stunden zu implementieren ist und trotzdem alles abdeckt was auch OpenID Connect leisten will.

      Organisationen wie das W3C oder die OpenID Foundation neigen dazu Spezifikationen aufzublasen um alle Eventualitäten abzudecken. Das führt dazu dass Standards so komplex werden, dass sie von anderen Formaten abgelöst werden (beispielsweise RDFa und Microdata) oder von Dienstleistern vereinfacht werden. Es ist ja schon ironisch, dass man Dienste wie Janrain Engage braucht um einen standardisierten Zugriff auf die diversen OpenID-Provider zu bekommen. Ein proprietäres Produkt welches den Standard standardisiert…

      Dem OpenWeb fehlt, finde ich, etwas die agile Herangehensweise. Auf ein Problem fokussieren und wenn das gelöst ist, das nächste angehen. Zuerst eine simple Single-Sign-On Lösung für das Web. Falls die Lösung nicht für digitale Bilderrahmen funktioniert, bekommt der Bilderrahmen seine eigene Single-Sign-On Lösung.

      Wenn Flickr dann beide Parteien (Web und Bilderrahmen) bedienen will, dann müssen sie halt zwei Specs implementieren. Das ist aber OK, da sie einen echten Nutzen aus beisen Varianten ziehen.

      So wie es gerade aussieht, bestraft man jeden, der die Bilderrahmen gar nicht bedienen will, da die OpenID Spec klar sagt: Ihr müsst alle Varianten abbilden.

      …ich glaub’ das formuliere ich für einen Blogpost nochmal richtig aus :)

      PS. Ich wünsch dir viel Glück bei der Board Member Election (meine Stimme hast du) und dein Firefox Plugin funktioniert leider nicht auf dem Mac…

Hinterlasse eine Antwort

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind markiert *

Du kannst folgende HTML-Tags benutzen: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

Connect Complex</a> (<span class="p-author h-card" title="Matthias Pfefferle">Matthias Pfefferle</span> <time class="dt-published" datetime="2012-01-18T11:31:08+00:00">18. Januar 2012</time>)</cite>">