Der Artikel „Single-Sign-On mit Facebook, Twitter und dem Open Stack„, den ich für Ausgabe 19 des t3n Magazins geschrieben habe, ist jetzt kostenlos im Heftarchiv verfügbar.

Immer mehr Webdienste erleichtern ihren Nutzern die Anmeldung, indem Sie statt einer langwierigen Registrierung auf den einfachen Login mit „Facebook Connect“ oder „Sign in with Twitter“ setzen. Wir zeigen, wie das funktioniert, welche Vorteile und Risiken sich daraus ergeben und warum es am Ende auf einen „Universal Login“ mit offenen Standards wie OpenID hinauslaufen könnte.

Link: Single-Sign-On mit Facebook, Twitter und dem Open Stack

Viel Spaß beim lesen…

Die verlinkten Spezifikationen wurden gemäß den aktuellen Änderungen (vom 13. April 2010) angepasst. Letztes Update 04.05.2010.

OneSocialWeb ist ein Projekt der Vodafone Group Research and Development und definiert ein Protokoll basierend auf XMPP (besser bekannt unter dem Namen Jabber) welches free, open, and decentralized social applications ermöglichen soll.

OneSocialWeb - Creating a free, open, and decentralized social networking platform.

Die Idee ist gar nicht so doof… Immerhin besitzt das XMPP Protokoll fast alle Eigenschaften die für ein dezentrales Social Network wichtig sind:

  • Eindeutiger Identifier (z.B. username@jabber.org) (mit Webfinger auch OpenID möglich)
  • Profil-Informationen (XEP-0054)
  • Kontakte (XEP-0083)
  • Dezentraler Aufbau

…und die Gruppe arbeitet an diversen XMPP Erweiterungen um das Protokoll noch sozialer zu machen:

Nachdem Facebook gestern angekündigt hat, dass der eigene Chat jetzt auch über XMPP erreichbar ist und auch Google Talk das Jabber Protokoll nutzt, kann man sich sicherlich über ein paar spannende Implementierungen in naher Zukunft freuen!

(via: Marco Ripanti)

Continue reading

Ich habe mal ein kleines Plugin geschrieben welches den WordPress-Atom-Feed mit der ActivityStream-Syntax erweitert.

 <entry>
  <id>http://notiz.blog/?p=1775</id>
  <author>
    <name>Matthias Pfefferle</name>
    <uri>http://notiz.blog</uri>
  </author>
  <...>
  <activity:verb>http://activitystrea.ms/schema/1.0/post</activity:verb>
  <activity:object>
    <activity:object-type>http://activitystrea.ms/schema/1.0/blog-entry</activity:object-type>
    <activity:object-type>http://activitystrea.ms/schema/1.0/article</activity:object-type>
    <id>tag:notiz.blog,2009-07-13:/post/1775</id>
    <title type="html"><![CDATA[Matthias Pfefferle posted a new blog-entry]]></title>
    <link rel="alternate" type="text/html" href="http://notiz.blog/2009/07/14/webstandards-kolumne/" />
  </activity:object>
</entry>

Die Syntax ist dazu gedacht, dem Feed-Parser/Feed-Reader zu erklären um was für einen Eintrag es sich handelt. Bei WordPress sind die <entry />s ausschließlich Blogposts/Artikel…

<activity:object-type>http://activitystrea.ms/schema/1.0/blog-entry</activity:object-type>
<activity:object-type>http://activitystrea.ms/schema/1.0/article</activity:object-type>

…die gepostet wurden.

<activity:verb>http://activitystrea.ms/schema/1.0/post</activity:verb>

Und für die Dienste wie NoseRub, die die Aktivität gerne in einen Satz packen, gibt’s das ganze auch noch in Prosa.

<title type="html"><![CDATA[Matthias Pfefferle posted a new blog-entry]]></title>

Das ActivityStream Schema definiert übrigens noch ’ne ganze Reihe an weiteren Objekten und Verben, die auf alle möglichen Aktionen im Netz passen. Falls ihr also noch welche findet, die zu WordPress passen könnten… lasst es mich wissen 😉

Es gibt leider aber auch ein paar Probleme mit der Syntax und diversen Feed-Readern, die das zweite <title /> im <activity-object /> mit interpretieren und dann beide Titel ausgeben… aber da ja auch MySpace und Facebook die ActivityStream-Syntax einsetzen ist dieser Fehler sicherlich bald bei jedem Feed-Reader behoben 😉

Viel Spaß beim ausprobieren!

In den letzten Tagen hat Facebook einige so spannende Ankündigungen gemacht, dass ich sogar kurz mal meinen Umzugsstress unterbrechen und darüber bloggen muss 🙂

Die Facebook Open Stream API

Die erste Ankündigung betrifft Facebooks Activity Stream der spätestens seit dem letzten Redesign das zentrale Feature von Facebook geworden zu sein scheint. Mit der Open Stream API führt Facebook diese Strategie fort und öffnet die Aktivitäten auch für externe Applikationen und Services. Besonders lobenswert ist, dass Facebook neben einer proprietären API (zum lesen und schreiben) auch einen Atom-Feed+Activity Extension1 zum weiterverarbeiten des Activity Streams anbietet. Leider ist aber auch der Atom-Feed über den Facebook-Authentifizierungsprozess geschützt und kann dadurch nicht ohne weiteres mit z.B. einem Feedreader abonniert werden.

Dass Facebook die proprietäre Open Stream API entwickelt, statt die OpenSocial RESTFul API einzusetzen ist leider zu verstehen, immerhin ist OpenSocial als Googles Antwort auf die Facebook-Apps entstanden. Schade!

OpenID Login

Als Facebook letztes Jahr der OpenID-Foundation beigetreten ist, um sie speziell in Sachen Usability/User Experience zu unterstützt, hatte ich natürlich große Hoffnung, dass Facebook in naher Zukunft auch selbst auf OpenID umstellen würde. Seit Montag ist jetzt klar, dass Facebook an einem OpenID-Login arbeitet, der hoffentlich auch irgendwann ein fester Bestandteil von Facebook-Connect wird.

Aber Facebook wäre nicht Facebook, wenn sie einfach nur einen klassischen OpenID-Login umsetzen würden. Wie Carsten Pötter auf SpreadOpenID beschreibt, plant Facebook eine Art OpenID-Auto-Discovery:

Facebook will automatically check to see if users have logged into any OpenID account when they hit Facebook.com, and give them the option to automatically login to Facebook without entering new information.

Leider ist dieses Feature, wohl nicht global für alle OpenID-Provider und definitiv nicht ohne Directed Identity möglich… aber man wird sehen (vielleicht spinn ich hier im Blog demnächst mal ein paar Szenarien (Worst-Cases) durch).


1 Die Atom Activity Extensions erweitert die Atom Spezifikation um eine Aktivitäten-Syntax. Die Idee entstand im Rahmen des DiSo-Projekts und wird unter anderem auch schon von MySpace und YIID unterstützt. Darauf werde ich demnächst sicherlich noch etwas detaillierter eingehen.