"Sign in with Matrix" ist eine Webkomponente, die Entwickler verwenden können, um ein Web-Login mit einem Matrix-Konto zu erstellen. Sie ähnelt den Schaltflächen "Sign in with Google" und "Sign in with Facebook", die man im Internet sieht, aber jetzt ist es Matrix. Die Projektseite enthält konkrete Beispiele für verschiedene Programmiersprachen, wie die Komponente in eigene Anwendungen eingebaut werden kann.
Entwickler Mishu Shakov nennt folgende Eigenschaften für seine Single-sign-on Lösung:
- Basiert auf svelte, vite und typescript
- Vollständig anpassbar und sofort einsatzbereit (auch für kommerzielle Zwecke)
- Äusserst leichtgewichtig
- Framework-unabhängig
- Überlegene Benutzeroberfläche und Benutzererfahrung
- Sicher, benötigt kein Backend um zu funktionieren
- Vollständig zugänglich, konform mit den WCAG-Richtlinien für Barrierefreiheit
- Konform mit Matrix 1.0 Protokollspezifikation
Ein Single-sign-on auf Basis eines Matrix-Accounts zu erstellen, ist zwar eine nette Idee, aus der Sicherheitsperspektive betrachtet jedoch nicht empfehlenswert. Falls der Matrix-Account kompromittiert ist, stehen Angreifern alle Zugänge offen, die diesen Account verwenden. Wir erinnern uns an folgende Binsenweisheiten:
- Verwende für jeden Zugang einen anderen Account mit anderem Benutzernamen/Passwort.
- Sichere jeden Account mit 2FA ab, falls möglich.
- Verwende gute Passwörter.
- Speichere diese in einem selbst kontrollierten Passwort-Manager.
Potenziell unsicher, da JS und niemand jede Code-Zeile prüft, bevor das JS ausgeführt wird. Sonst stimme ich für Wichtiges zu – separater Zugang im Passwort-Manager.
Zumindest für die eigene Webseite wär das schon noch interessant. Eine Kombination von E-Mail server, Nextcloud, Element und Wordpress auf dem Eigenen Server könnte man so leicht mit zentral organisiertem Usern steuern.
Mir ging es so also nicht um logins auf dritten Servern.
Dafür wird es sicher Anwendungsfälle geben, wesentlich universeller und vor allem sicherer dürfte allerdings die Verwendung einem Protokoll wie OpenID Connect oder SAML sein, denn dort gibt der Nutzer seine Zugangsdaten nur beim Identity Provider ein (was in diesem Fall der Matrix-Server wäre) – die Seite, auf der sich der Nutzer einloggt, kann diese technisch bedingt gar nicht mitschneiden.