OpenNIT-Vault-Extension/README.md
Claude 18f68d68ea
2FA-Restlaufzeit korrigiert, manuellen API-Token entfernt
Countdown des 2FA-Codes: Die Anzeige zaehlte blind im Sekundentakt
herunter und lief dadurch aus dem Takt. Am Ende eines Zeitfensters wurde
zwar ein neuer Code angefordert, der Zaehler aber nicht angehalten - bei
langsamer oder fehlschlagender Antwort lief er ins Negative und stiess
jede Sekunde eine weitere Anfrage an (inkl. Audit-Eintrag je Abruf),
waehrend die Anzeige auf dem alten Wert stehenblieb.

Die Restlaufzeit wird jetzt aus einem festen Ablaufzeitpunkt berechnet,
sodass gedrosselte oder ausgefallene Ticks sie nicht verschieben. Pro
Ablauf wird genau einmal nachgeladen; liefert der Server keinen Code
mehr (gesperrt/offline), stoppt der Timer und die Anzeige wird geleert.
Dieselbe Rechnung gilt fuer die Benachrichtigung im Seiteninhalt; die
Periode steckt dort wie im Popup in einer Konstanten statt als 30 im
Ausdruck.

Manueller API-Token: Eingabefeld, "Token speichern" und "Verbindung
testen" sind aus den Optionen entfernt; die Server-URL laesst sich
weiterhin separat speichern. getAccessToken() kennt nur noch den
SSO-Weg, und ein aus einer frueheren Version uebernommener Token wird
bei onInstalled aus chrome.storage.local geloescht. Doku und
Store-Listing entsprechend angepasst.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01G12DRMpe4UjYDwuRU1sjy1
2026-07-31 12:53:34 +00:00

4.9 KiB
Raw Blame History

OpenNIT Vault

OpenNIT Vault Browser-Erweiterung

Passwort-Manager-Erweiterung für OpenNIT Autofill für Benutzer-, Passwort- und 2FA-Felder direkt im Browser.


Was ist das?

OpenNIT Vault ist die Browser-Erweiterung zum Passwort-Tresor von OpenNIT. Sie verbindet sich mit deiner selbst gehosteten OpenNIT-Instanz und bietet:

  • 🔎 Sofortsuche über alle persönlichen und Team-Tresore
  • ⌨️ Autofill von Benutzername, Passwort und 2FA/TOTP-Codes auch auf mehrstufigen Login-Seiten
  • 💡 Vorschläge direkt im Eingabefeld (passend zur aufgerufenen Website)
  • 👁️ Detailansicht mit Anzeigen/Kopieren von Zugangsdaten und 2FA-Code mit Countdown
  • Neue Einträge anlegen inkl. Passwort-Generator
  • 🔒 PIN-Sperre mit demselben PIN wie der Web-Tresor (Dauer frei wählbar, bis „bis Browser schließt")
  • 🧹 Zwischenablage-Auto-Clear nach dem Kopieren von Geheimnissen
  • 🖼️ Favicons der hinterlegten Seiten (serverseitig gecacht keine externen Aufrufe)
  • 🌙 Heller & dunkler Modus (folgt dem System)

Wie es funktioniert

Die Erweiterung ist ein reiner Client zu deiner OpenNIT-Instanz. Sie enthält keinen eigenen Server und keinen Remote-Code alle Skripte sind im Paket enthalten. Kommuniziert wird ausschließlich mit dem von dir konfigurierten OpenNIT-Server über dessen REST-API (/api/vault/extension/...) per Bearer-Token.

  • Die Anmeldung erfolgt ausschließlich per SSO („Mit OpenNIT anmelden"). Die Erweiterung erhält dabei ein kurzlebiges, rotierendes Zugriffstoken ein manuelles Erzeugen von Tokens entfällt.
  • Passwörter werden serverseitig ver-/entschlüsselt; die Erweiterung fordert das Klartext-Passwort eines Eintrags erst im Moment des Ausfüllens/Kopierens an nicht beim Laden der Liste.
  • Es findet keine Ende-zu-Ende-Entschlüsselung im Browser statt; die Erweiterung speichert keine Passwörter dauerhaft (nur Server-URL, Sitzungstoken und Einstellungen in chrome.storage).

Details: docs/ARCHITECTURE.md · Berechtigungen: docs/PERMISSIONS.md

Anmeldung per SSO: „Mit OpenNIT anmelden" (OAuth 2.0 + PKCE) Anmeldung wie an OpenNIT (lokal + 2FA / M365 / Keycloak), automatische Token-Erneuerung mit Rotation. Einen manuell eingetragenen API-Token unterstützt die Erweiterung nicht mehr.

Installation

Aus dem Chrome Web Store

Am einfachsten für Endnutzer: den Store-Eintrag öffnen und „Hinzufügen" klicken. Anschließend die Erweiterung anheften, Einstellungen öffnen, Server-URL eintragen und „Mit OpenNIT anmelden" (SSO).

Store-Link folgt, sobald die Veröffentlichung abgeschlossen ist.

Aus dem Quellcode (Entwickler / self-hosted)

  1. chrome://extensions öffnen, Entwicklermodus aktivieren.
  2. „Entpackte Erweiterung laden" → den Ordner extension/ auswählen.
  3. Erweiterung anheften, Einstellungen öffnen, Server-URL eintragen und „Mit OpenNIT anmelden" (SSO).

Ausführliche Anleitung: docs/INSTALL.md.

Aus dem OpenNIT-Backend

Jede OpenNIT-Instanz bietet im Backend unter Admin → Vault-Erweiterung (/admin/vault/extension) einen ZIP-Download der Erweiterung (mit vorausgefüllter Server-URL) samt Einrichtungsanleitung. Diese generische Variante hier ist für die Veröffentlichung im Chrome Web Store bzw. als eigenständiges Repository gedacht.

Konfiguration

Einstellung Beschreibung
Server-URL Adresse deiner OpenNIT-Instanz, ohne abschließenden Slash (https://…).
Anmeldung Ausschließlich per SSO („Mit OpenNIT anmelden").
PIN-Sperre Aus / 5 Min / 15 Min / 1 Std / bis der Browser geschlossen wird. Nutzt den Tresor-PIN.
Zwischenablage Nach 30 s automatisch leeren (Standard: an).

Build / Paketierung

./build.sh          # erzeugt dist/opennit-vault-<version>.zip aus extension/

Sicherheit & Datenschutz

  • Kein Remote-Code, keine Telemetrie, keine Drittanbieter-Server.
  • Datenfluss ausschließlich Browser ⇄ deine OpenNIT-Instanz.
  • Datenschutzerklärung: PRIVACY.md.

Sicherheitslücken bitte nicht über öffentliche Issues melden, sondern vertraulich an das OpenNIT-Team.

Verhältnis zu OpenNIT

Diese Erweiterung ist Teil des OpenNIT-Projekts. Der Quellcode wird in OpenNIT serverseitig generiert (src/Controllers/VaultApiController.php); dieses Repository ist die eigenständige, generische Fassung für Distribution und Store.

Lizenz

GNU AGPL-3.0 wie OpenNIT.