Archiv der Kategorie: HowTo

Solid Basics #002 – Deine Daten gehören dir

Ein wesentliches Merkmal von Solid ist die Trennung von Apps und Daten. Während deine Daten im traditionellen Social Web stets an eine bestimmte App bzw. einen bestimmten Dienst gekoppelt sind, liegen sie im Solid Ökosystem grundsätzlich in deinem eigenen Pod und du hast freie Wahl mit welcher App du sie verwalten und benutzen möchtest. Schauen wir uns an, was das praktisch bedeutet! Wenn du noch keinen Pod hast, besorge dir jetzt deine Identität im Web und wir legen los.

Als Beispiel schauen wir uns eine einfache Bookmarking App an: markbook.org. Dort kannst du beliebige Links als Lesezeichen hinterlegen, zum Beispiel um sie dir zum späteren Lesen vorzumerken.

Dank Solid benötigst du keinen Account bei marbook.org. Deine WebID genügt zum Einloggen: Nach einem Klick auf Login öffnet sich eine Providerauswahl. (Leider zur Zeit in einem Popup, was du ggf. im Browser erlauben musst)

Providerauswahl

Wenn du dich, wie in Teil 1 beschrieben, bei solid.community registriert hast, wählst du „Log in with Solid Community“. Dort loggst du dich dann mit deinem Username und Passwort ganz normal ein und wirst anschließend zurück zu markbook.org geleitet.

Login bei deinem Pod (z.B. solid.community)

Du wirst feststellen, dass markbook.org bereits deinen Namen und – falls du eins hinterlegt hast – dein Profilbild anzeigt. Diese Informationen lädt die App live aus deinem Solid Profil.

Markbook.org speichert selbst überhaupt keine Daten über dich. Nicht einmal die Lesezeichen, die wir gleich dort hinterlegen werden!

Um ein neues Lesezeichen anzulegen, klicke auf „Create Bookmark“ in der blauen Leiste oben. Es erscheint dann ein Dialog, in dem du einen Titel und die URL des Lesezeichen angeben kannst.

Ein Lesezeichen anlegen

Nach einem Klick auf „Post“, wird das Lesezeichen in deinem Solid Pod gespeichert und erscheint bei markbook.org in der Liste.

Das neu angelegte Lesezeichen, angezeigt auf markbook.org, gespeichert in deinem Solid Pod.

Der springende Punkt bei Solid ist, dass dieses Lesezeichen in deinem persönlichen Pod gespeichert wurde – markbook.org speichert keine Daten über dich oder deine Lesezeichen. Es ist eine reine Browser-App, die nur auf deinem Rechner oder Smartphone läuft.

Wenn du dich mit den Entwicklungswerkzeugen deines Browsers auskennst, kannst du dort verfolgen, dass markbook.org lediglich Daten an deinen Solid Pod sendet.

Schauen wir uns zum Abschluss die Daten einmal an! Mit Solid hast du volle Kontrolle über alle Daten die gespeichert werden und kannst diese jederzeit einsehen und löschen. „Deine Daten gehören dir“ ist hier kein Marketing-Bla-Bla, sondern technisch gewährleistet.

Deine Lesezeichen findest du unter einer URL der Form https://<username>.solid.community/public/bookmarks.ttl. Warum ich das weiß, bzw. wie man die genaue URL herausfindet erkläre ich in einem späteren Artikel. (Tipp für Neugierige: Alle Daten sind von deiner WebID ausgehend verlinkt. Folge dem Link namens „publicTypeIndex“). Für heute reicht es, wenn du in der genannten URL einfach deinen Benutzernamen an Stelle von <username> einsetzt.

Wenn du die URL im Browser öffnest, findest du dort die Daten des eben angelegten Lesezeichens.

Viel Spaß beim Experimentieren und Erkunden!

Solid Basics #001 – Deine Identität im Web

Um am neuen Social Web teilhaben zu können, benötigst du zunächst (mindestens) eine globale Identität (WebID). Da Solid ein völlig offenes Ökosystem ist, kann im Prinzip jede Webaddresse (URI) mit entsprechender Konfiguration als WebID dienen. Ich möchte in dieser „Solid Basics“ Reihe die Dinge aber möglichst einfach halten. Ich zeige dir daher nun, wie du einen Account bei einem offenen Solid-Provider anlegst und direkt loslegen kannst.

Ein solcher Provider ist solid.community. Du kannst die Registrierungsseite benutzen um dort einen Account anzulegen und so eine WebID erhalten. Username und Password benötigst du um dich später einzuloggen. Der Username wird auch Teil deiner öffentlichen WebID. Die Email dient zur Account-Wiederherstellung, External WebID kannst du leerlassen.

Registrierungsformular bei solid.community

Nach der Registrierung landest du auf der Startseite deines neuen Solid Pods:

Deine WebID nach der Registrierung lautet https://<username>.solid.community/profile/card#me Neben einer WebID stellt dir solid.community, auch Speicherplatz für deine Daten zur Verfügung (Solid Pod). Wenn du die WebID im Browser abrufst siehst du dein Profil mit dem bei der Registrierung eingetragen Namen:

Du kannst über die Felder weitere Informationen eintragen und auch ein Profilbild hochladen. Die Oberfläche ist allerdings sehr sehr rudimentär und alles andere als schön zu bedienen. Die Stärke von Solid liegt jedoch darin, dass du nun beliebige (bessere) Solid-Apps im Web benutzen kannst um deine Daten zu verwalten und zu ergänzen. Mehr dazu folgt! Eine Identität mit der du dich einloggen kannst, hast du nun schon mal.

WebID-Authentifizierung mit Node.js

Ein Leser des letzten Artikels hatte Schwierigkeiten, die Signatur von foafssl.org mit Hilfe von Node.js zu überprüfen. Es war etwas tricky, aber ich habe es inzwischen hinbekommen und möchte die Lösung niemandem vorenthalten:

Grundsätzlich funktioniert die Überprüfung der Signatur bei Node.js mit verifier.verify(object, signature, [signature_format]). Als 1. Parameter gebt ihr den (PEM encodierten) Public Key an, als zweites die Signatur und als letztes das Format ‚base64‘.

Allerdings ist die übermittelte Signatur nicht Base64, sondern Base64-URL encodiert! Ihr müsst also in der Signatur zunächst alle ‚_‘ durch ‚/‘ und alle ‚-‚ durch ‚+‘ ersetzen. Bevor ihr die Signatur an die verify-Function übergebt, müsst ihr aber außerdem noch ‚==‘ hinten anfügen. Die korrekte Signatur ergibt sich also wie folgt:

var signature = signatureBase64Url.replace(/\_/g, '/').replace(/-/g, '+') + '=='

Ein funktionierendes, online ausführbares Code-Beispiel habe ich auf der Plattform jsapp.us hinterlegt.