Login leicht gemacht: Single-Sign-On mit Facebook, Twitter und dem Open Stack
Seit Yahoo im Dezember 2009 ankündigte, „Facebook Connect“ (FB Connect) in die eigenen Plattformen zu integrieren, stellt sich die Frage, ob Facebook den Identity-Markt für sich alleine beanspruchen und offene Formate wie OpenID ablösen wird [1]. FB Connect hat sich seit der Veröffentlichung vor etwa einem Jahr rasend schnell zu einer Art de facto Connect-System entwickelt und Konkurrenten wie Google oder MySpace abgehängt.
Der Ablauf eines Facebook-Connect-Logins (siehe Abb. 1) unterscheidet sich nur unwesentlich von einem OpenID-Login (Siehe Abbildung 2): Der User drückt den Button, authentifiziert sich gegenüber Facebook mit Benutzername und Passwort und bestätigt die Verbindung. Abgesehen vom Ablauf der Anmeldung, unterscheiden sich beide Systeme jedoch grundlegend. OpenID ist ein Produkt der Blogosphäre und wurde als Single-Sign-On-System konzipiert, um Bloggern das Kommentieren auf anderen Weblogs zu vereinfachen [2]. Trotz der stetigen Weiterentwicklung, liegt der Fokus von OpenID weiterhin auf dem Anmeldeprozess. Für die Bloggosphäre existieren allerdings auch noch andere Systeme beziehungsweise Schnittstellen. So können WordPress-Nutzer neben OpenID [3] unter anderem FB Connect [4] oder MySpaceID [5] verwenden.
FB Connect könnte man dagegen als logische Weiterentwicklung von OpenID sehen. Facebook nutzt mit FB Connect gezielt seine Vorteile als Social-Network und verbindet den Single-Sign-On mit den drei Grundelementen des Social-Webs:
- Identity: Die Identität spielt eine wichtige Rolle. Um sich nicht bei jedem Dienst von neuem registrieren und seine Identitäten getrennt pflegen zu müssen, bietet FB Connect Zugriff auf die Facebook-Profil-Daten. Änderungen werden auf alle angeschlossenen Plattformen verteilt.
- Social Graph: Das Social-Web lebt von Interaktion sowie der Anzahl der User und Kontakte. Das Pflegen dieser Beziehungen ist zeitaufwändig, aber FB Connect verkürzt diesen Prozess, indem man die User der angeschlossenen Plattform mit dem eigenen Facebook-Adressbuch abgleichen kann.
- Activities: Die Kommunikation im Netz findet sehr verteilt statt. Bilder werden bei Flickr gepflegt, Videos bei Youtube und Artikel im Weblog. Die einzelnen Netzwerke sind aber weitestgehend voneinander abgeschottet und bilden so genannte Datensilos. Mit FB Connects Activity-Stream API kann man diese verteilten Inhalte in Facebook zusammen führen.
FB Connect bietet also gerade für die grundlegenden Bedürfnisse im Social Web eine umfassende Lösung. Schnelles und einfaches Registrieren und Anmelden, einfaches Verwalten des Social Graphs und das Zusammenführen aller Online-Aktivitäten. Mit einer Reichweite von weltweit mehr als 350 Millionen Nutzer [6] ist gerade der letzte Punkt ein nicht zu unterschätzender Anreiz für Anwender, die verteilten Profile mit Facebook zu verbinden und alle Social-Web-Aktivitäten an einer Stelle zu vereinen.
Aber nicht nur Facebook erfreut sich großer Beliebtheit, Twitter ist mindestens genauso erfolgreich wie FB Connect. Was dem Twitter-Login zugute kommt, ist der mittlerweile riesige Kosmos an Diensten, die auf die Twitter-API aufbauen und die im Vergleich zu anderen Systemen relativ simple API.
Der Open Stack
Google, Yahoo! und MySpace setzen für ihre Login-Mechanismen weiterhin auf OpenID. Um mit dem Feature-Set von FB Connect konkurrieren zu können, entwickelte die OpenID-Community den sogenannten Open Stack [7]. Dieser ist eine Wortschöpfung von Joseph Smarr (damals Plaxo) und beschreibt ein Set von lose zusammengefügten offenen Standards, das Entwicklern einen relativ umfassenden Zugriff auf die Daten eines Benutzers bietet. Kerntechnologien des Stacks sind unter anderem OpenID, OAuth und OpenSocial. Die technischen Vorteile gegenüber den proprietären Systemen von Facebook und Twitter sind:
- Jeder der Standards kann alleinstehend und in Kombination genutzt werden. Dies verkleinert den Entwicklungsaufwand für Spezialfälle. Steigen nachträglich die Anforderungen, kann der Stack nahezu beliebig erweitert werden.
- Bestehende Informationen und APIs können wiederverwendet und müssen nicht von einem Dienst bereitgestellt werden. Kontakte und Aktivitäten können so von Drittanbietern ausgeliefert und von dem Identity-Provider referenziert werden.
- Bei Open Stack ist es prinzipiell egal, ob man den Sozialen Graphen über XFN, FoaF oder Portable Contacts importiert oder alle Varianten unterstützt.
Open Stack eignet sich im Gegensatz zu FB Connect oder dem Twitter-Dienst grade durch sein Baukasten-System besonders für spezifische Connect-Lösungen. Ein Online-Shop benötigt beispielsweise nur einen Single-Sign-On kombiniert mit einem Payment Service, wie ihn PayPal mit PayPal ID plant [8].
Offene Standards |
OAuth ist ein offenes Protokoll, das eine standardisierte, sichere API-Autorisierung für Web-Anwendungen erlaubt. XFN ist ein Microformat zum Auszeichnen von Freundschaftsbeziehungen über das rel-Attribut (HTML). Portable Contacts ist eine RESTFul API zum Abfragen des Social Graphs. Die Zugriffskontrolle funktioniert über OAuth. FoaF steht für Friend of a Friend und ist eine semantische Auszeichnung von Freundschaftsbeziehungen (XML). |
Außerdem verfügt OpenID trotz des Angriffs von FB Connect immer noch über eine große Nutzerschaft und auch OAuth hat sich als Autorisierungsmechanismus für API-Anfragen durchgesetzt. In Kombination schafft der Open Stack einen Zugang zu mehr als einer Milliarde OpenID-Profile – Google, Yahoo, MySpace und Microsoft inbegiffen [9].
Offene Standards vs. Facebook und Twitter
Wie schon erwähnt, unterscheiden sich die diversen Connect-Produkte nur unwesentlich in ihren Leistungen (siehe Tabelle weiter unten) und in ihrer Funktionalität (oft auch als Federated Login oder Delegated Authentication bezeichnet):
- Der Anwender klickt auf einen Connect Button…
- er wird zu der entsprechenden Plattform geleitet (alternativ öffnet sich ein Popup oder Layer)…
- er authentifiziert sich und autorisiert die Anfrage…
- und wird wieder auf die Ausgangsplattform geleitet
Das heißt, die wesentlichen Unterschiede liegen in der Umsetzung, die sich fast beliebig ändern lässt, ohne den Anwender in seinem Nutzerverhalten einzuschränken. Es besteht also kaum eine Notwendigkeit für Facebook, an einem proprietären Format festzuhalten. Zudem gibt es diverse Anzeichen, die für ein zukünftiges „Open FB Connect“ sprechen. So implementiert Facebook einen OpenID-Login [10] und stellt David Recordon (eine der treibenden Kräfte hinter OpenID) als Open Programs Manger ein. Dieser sucht via Facebook-Nachricht nach „fähigen Entwicklern, die ihm dabei helfen, dass FB Connect in Zukunft offene Standards wie OpenID und OAuth unterstützt.
Service | Zugriff auf: |
Facebook Connect | Identity, Social Graph, Stream |
Twitter Auth | Identity, Social Graph, Stream (+alle anderen Twitter APIs) |
Google OpenID | Identity, Social Graph (+alle anderen mit OAuth geschützten APIs) |
Yahoo!ID | Identity, Social Graph, Stream (+alle anderen mit OAuth geschützten APIs) |
MySpaceID | Identity, Social Graph, Stream (+alle anderen mit OAuth geschützten APIs) |
Google Friend Connect | Social Graph + diverse Widgets |
Der Einsatz von offenen Standards würde die Reichweite von Facebook erneut drastisch steigern. Mit einem einheitlichen Social Connect
würde jede Google ID-, Yahoo!ID-, MySpace ID- oder simple OpenID-
Implementierung auch gleichzeitig Facebook unterstützen, was wiederum
den Kosten/Nutzen Faktor für eine Social Connect Implementierung auf
Client-Seite erhöhen würde.
Die Risiken von Connect-Systemen
Neben den diversen Vorteilen von Facebook Connect & Co. bieten
der globale, netzwerkunabhängige Social Graph und die Verknüpfung
aller sozialen Netzwerke aber auch diverse Risiken:
- Ein Hacker-Angriff auf den Social-Connect-Provider bedeutet auch den Zugriff auf alle angeschlossenen Netzwerke/Seiten
- Der Social-Connect-Provider des Vertrauens kann von einer unseriösen Firma übernommen werden
- Eine Regierung kann sich einfacher Zugriff zu Netzwerkübergreifenden Profil-Informationen erzwingen
- Der Social-Connect-Provider kann seinen Dienst einstellen
Die Verschmelzung von Social Connector und Social Network birgt zudem noch ein weiteres Risiko. Interessen
von Nutzern ändern sich mit zunehmendem Alter oder
einem veränderten sozialen Umfeld. Am Beispiel von MySpace erkennt man deutlich, dass
eine Community nicht ewig existiert und die Nutzer irgendwann zum
nächsten Dienst abwandern. Nutzt
man MySpace beispielsweise auch als Social Connector, bindet man sich
dauerhaft an das Social Network oder muss mühselig alle angeschlossenen
Plattformen mit einem neuen Identity-Provider verbinden.
Open Stack ist zwar keine generelle Lösung für alle Probleme,
bietet aber diverse Mechanismen, um einige der genannten Risiken zu
entschärfen. OpenID ermöglicht beispielsweise einen relativ einfachen
Wechsel des Identity-Providers. Das Prinzip nennt sich Delegation [11] und
macht die eigene URL zu einer OpenID, die den
Authentifizierungsprozess an einen beliebigen OpenID-Provider
delegieren kann. Zudem ließe der
Aufbau des Open Stacks eine dezentrale Verwaltung der
persönlichen Daten zu. Der Identity-Provider wäre unabhängig von einem
Social-Network und könnte trotzdem auf deren Inhalte verweisen.
Beispielszenario: Login mit MyOpenID, Kontaktabgleich über Facebook und
Activities über Friendfeed. Bei einem der oben genannten Zwischenfälle
wären nicht gleich alle Informationen betroffen und die Probleme ließen
sich unproblematischer beheben.
Fazit
Ein einheitlicher Single-Sign-On beziehungsweise Social Connect Standard
braucht sicherlich noch seine Zeit, ist aber lange nicht mehr so
utopisch wie vor einem Jahr. Es gilt, in Zukunft aus den Problemen der
einzelnen Systeme zu lernen und deren Vorteile in ein einheitliches
Format zu gießen. Betrachtet man das aktuelle OpenID Board, scheint
dieser Prozess schon in vollem Gange zu sein: JanRain, Facebook,
Yahoo, Plaxo (Open Stack Relying Party), Google und Microsoft sind darin vertreten [12].