
KDE Plasma: Ein neues Online-Kontosystem?
Seit vielen Jahren verfügt Plasma über ein eigenes Online-Kontensystem namens KAccounts. Die Idee dahinter ist einfach: In den Systemeinstellungen melden Sie sich einmal bei einem bestimmten Onlinedienst an, und dann können mehrere Anwendungen diese Anmeldung verwenden, anstatt sich in jeder Anwendung separat anzumelden.
Eine Übersetzung von nicolasfella.de
Die Anzahl der verfügbaren Dienste und Anwendungen, die diese nutzen, hat sich in den letzten Jahren etwas verändert. Derzeit werden die folgenden Dienste unterstützt:
- Nextcloud: Wird von Dolphin verwendet, um eine Verknüpfung für den Dateizugriff über WebDAV zum Abschnitt
Netzwerkhinzuzufügen, sowie vom Purpose-Framework, um das Hochladen von Dateien auf Nextcloud zu ermöglichen. - Owncloud: Wird für dieselben Zwecke wie Nextcloud verwendet.
- Google: Wird von Purpose zum Hochladen auf YouTube verwendet. Theoretisch auch von kio-gdrive zum Durchsuchen von Google Drive, aber der Zugriff darauf ist derzeit von Google blockiert.
- OpenDesktop: Wird zum Überprüfen von Inhalten auf store.kde.org in Discover verwendet.
Das ist nicht besonders viel. Bemerkenswert ist das Fehlen von KDE PIM, das von der Integration mit Nextcloud- und Google-Konten erheblich profitieren könnte. Dies ist etwas, was viele Benutzer im Laufe der Zeit gefordert haben. Darüber hinaus gibt es weitere Dienste, die anwendungsübergreifend genutzt werden und von einem systemweiten Online-Kontosystem profitieren könnten, wie beispielsweise Mastodon oder Matrix.
Insgesamt ist die Situation hinsichtlich der Unterstützung von Online-Konten in KDE unbefriedigend, und das liegt nicht daran, dass es an Versuchen mangelt. In den letzten Jahren gab es mehrere kleinere Verbesserungen am System. An der Gesamtarchitektur hat sich jedoch nichts geändert. Ich bin mittlerweile davon überzeugt, dass es die Architektur ist, die uns zurückhält, und dass wir etwas dagegen unternehmen müssen.
Das aktuelle System basiert auf dem Accounts SSO Framework. Es besteht aus mehreren Bibliotheken und Prozessen, die auf etwa ein Dutzend verschiedene Repositorys verteilt sind. Dies führt zu einem recht komplexen System für das Lesen und Schreiben in eine SQLite-Datenbank und einige OAuth-Verarbeitungsvorgänge. Außerdem wird es nur sehr wenig weiterentwickelt, sodass es schwierig war, die erforderlichen Patches für die Qt6-Unterstützung zu integrieren. Die Verwendung eines externen Kontosystems als Grundlage für KAccounts erschwert nur die Weiterentwicklung unseres Systems, ohne dass eine sinnvolle Interoperabilität mit anderen Parteien gewährleistet ist.
Das System ist auch nicht für eine Sandbox-Umgebung ausgelegt. Apps haben direkten Zugriff auf die Kontodatenbank und den Schlüsselbund, sodass es keine Möglichkeit gibt, zu beschränken, welche Apps welche Konten verwenden dürfen. Während eine Zugriffskontrolle pro Anwendung für herkömmliche Linux-Pakete nicht wirklich realisierbar war, können und wollen wir mit Sandbox-Formaten wie Flatpak Apps so einschränken, dass sie nur auf ausgewählte Konten zugreifen können.
Nachdem ich eine Weile über das Problem nachgedacht hatte, kam ich zu dem Schluss, dass wir einen Neuanfang für unsere Online-Konten brauchen, ein neues System, das die folgenden Ziele erfüllt:
- Es wird tatsächlich von relevanter KDE- und Drittanbietersoftware verwendet.
- Einfach zu hacken und zu erweitern.
- Einfach in Verbrauchersoftware zu integrieren, mit minimalen Abhängigkeiten.
- Kann durch Drittanbieter erweitert werden.
- Kontodaten werden angemessen sicher gespeichert, mit Zugriffskontrolle pro Anwendung (zumindest für Sandbox-Anwendungen).
Basierend auf diesen Zielen habe ich einen Prototyp entwickelt, wie ein solches System aussehen könnte.
Sein Kernstück ist ein Daemon-Prozess, der die Konten verwaltet und sie über eine DBus-Schnittstelle verfügbar macht. Anwendungen nutzen diese DBus-Schnittstelle, um verfügbare Konten sowie deren Parameter und Anmeldedaten aufzulisten. Auf diese Weise sind nur Konten sichtbar, für die die App Zugriff erhalten hat. Die Anwendungsauthentifizierung funktioniert ähnlich wie xdg-desktop-portal.
Eine Anwendung kann eine Anfrage für den Zugriff auf ein neues Konto auslösen. Der Daemon übernimmt dann den gesamten Anmeldevorgang und gibt bei Erfolg einen Handle für das neue Konto zurück. Alternativ kann sich der Benutzer im Systemeinstellungsmodul bei einem bestimmten Dienst anmelden und über diesen den Zugriff auf relevante Anwendungen gewähren.
Derzeit werden die folgenden Dienste/Anwendungen unterstützt:
- Nextcloud: Verwendet von Purpose und KDE PIM
- Mastodon: Verwendet von Tokodon
- Google: Verwendet von KDE PIM und Purpose
Den Code finden Sie unter https://invent.kde.org/nicolasfella/konlineaccounts
Es handelt sich noch um einen Prototyp, der keineswegs produktionsreif ist, aber das Grundkonzept verdeutlicht. Wenn Sie Anregungen dazu haben, melden Sie sich bitte, beispielsweise indem Sie ein Issue erstellen.
Eine Übersetzung von nicolasfella.de














Comments