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
86 lines
4.3 KiB
Markdown
86 lines
4.3 KiB
Markdown
# Changelog – OpenNIT Vault (Browser-Erweiterung)
|
||
|
||
Format nach [Keep a Changelog](https://keepachangelog.com/de/1.1.0/).
|
||
Die Erweiterungsversion (`manifest.json`) ist unabhängig von der OpenNIT-Serverversion.
|
||
|
||
## [Unreleased]
|
||
|
||
### Geändert
|
||
- **Anmeldung nur noch per SSO:** Das Feld für den manuell erzeugten API-Token samt „Verbindung testen"
|
||
ist aus den Einstellungen entfernt. Die Verbindung entsteht ausschließlich über „Mit OpenNIT anmelden".
|
||
Ein aus einer früheren Version übernommener Token wird beim Update aus dem lokalen Speicher gelöscht;
|
||
wer bisher nur damit verbunden war, meldet sich einmal per SSO an.
|
||
|
||
### Behoben
|
||
- **Restlaufzeit des 2FA-Codes wird wieder korrekt angezeigt:** Der Countdown blieb am Ende eines
|
||
Zeitfensters stehen und lief mit der Zeit aus dem Takt. Er rechnet nun gegen den tatsächlichen
|
||
Ablaufzeitpunkt und holt den neuen Code beim Wechsel genau einmal nach. Lässt sich kein neuer Code
|
||
laden (Tresor gesperrt oder Verbindung weg), zeigt die Anzeige das an, statt auf einem abgelaufenen
|
||
Wert stehen zu bleiben.
|
||
- **Neuen Eintrag anlegen funktioniert wieder nach SSO-Anmeldung:** Das Speichern eines im Popup
|
||
erzeugten Passworts brach bisher mit „Nicht konfiguriert." ab, wenn die Erweiterung über
|
||
„Mit OpenNIT anmelden" verbunden war – es wurde ausschließlich der manuelle Token akzeptiert.
|
||
Das Anlegen nutzt nun denselben Zugang wie alle übrigen Aufrufe (inkl. automatischer
|
||
Token-Erneuerung). Ist der Tresor gesperrt, erscheint die PIN-Abfrage statt einer Fehlermeldung.
|
||
|
||
## [2.4.0] - 2026-07-01
|
||
|
||
### Hinzugefügt
|
||
- **SSO-Anmeldung (OAuth 2.0 + PKCE):** „Mit OpenNIT anmelden" – Anmeldung wie an OpenNIT
|
||
(lokal + 2FA / Microsoft 365 / Keycloak) über `chrome.identity`. Die Erweiterung erhält kurzlebige
|
||
Access-Tokens und einen langlebigen, **rotierenden** Refresh-Token; der Zugang wird automatisch erneuert.
|
||
„Abmelden" widerruft die Sitzung serverseitig.
|
||
- Der bisherige **manuelle Token** bleibt als „Erweitert"-Option erhalten (Kiosk/Headless).
|
||
|
||
### Sicherheit
|
||
- Kurzlebige Access-Tokens + Refresh-Token-**Rotation mit Reuse-Detection** (bei Wiederverwendung eines
|
||
bereits rotierten Tokens wird die gesamte Sitzungskette widerrufen).
|
||
|
||
## [2.3.0] - 2026-07-01
|
||
|
||
### Sicherheit
|
||
- **Token-Härtung:** Bei aktivem Tresor-PIN wird die PIN-Sperre nun **serverseitig erzwungen** – die
|
||
Endpunkte für Einträge/Passwort/TOTP liefern erst nach frischer PIN-Entsperrung Daten. Ein gestohlener
|
||
Token allein ist damit wertlos, solange keine gültige Entsperrung vorliegt (neuer `POST /unlock`
|
||
mit Fensterdauer, `POST /lock` zum sofortigen Sperren).
|
||
- **HTTPS-Zwang:** In den Einstellungen werden nur noch `https://`-Adressen akzeptiert (Ausnahme:
|
||
`localhost`) – verhindert Klartext-Übertragung von Token und Passwörtern.
|
||
- **Warnung bei fremder Domain:** „Auf dieser Seite ausfüllen" warnt, wenn die aktive Seite nicht zur
|
||
hinterlegten Adresse des Eintrags passt.
|
||
|
||
### Geändert
|
||
- Die Einstellung „PIN-Sperre" legt nur noch die **Dauer** der Entsperrung fest (die Option „Aus" entfällt,
|
||
da die Sperre bei gesetztem Tresor-PIN serverseitig gilt).
|
||
|
||
## [2.2.2] - 2026-07-01
|
||
|
||
### Geändert
|
||
- Fester Name **„OpenNIT Vault"** (unabhängig vom Instanznamen).
|
||
- Berechtigung **`tabs` entfernt** – die aktive Tab-Adresse ist bereits durch die Website-Berechtigungen
|
||
abgedeckt; die Warnung „Browserverlauf lesen" entfällt.
|
||
|
||
## [2.2.0] - 2026-07-01
|
||
|
||
### Hinzugefügt
|
||
- **PIN-Sperre** mit demselben PIN wie der Web-Tresor, konfigurierbare Sperrdauer (5 Min / 15 Min /
|
||
1 Std / bis der Browser geschlossen wird).
|
||
- **Passwort-Generator** und Anzeigen-Auge beim Anlegen.
|
||
- **Notizen** in der Detailansicht (anzeigen/kopieren) und in der Suche.
|
||
- **Zwischenablage-Auto-Clear** nach dem Kopieren (abschaltbar).
|
||
- **Tastatur-Navigation** in der Liste und **Dark Mode**.
|
||
|
||
## [2.1.0] - 2026-06-30
|
||
|
||
### Hinzugefügt
|
||
- **Detailansicht** je Eintrag mit Anzeigen/Kopieren von Benutzername und Passwort sowie 2FA-Code.
|
||
- **Favicons** der hinterlegten Seiten (serverseitig gecacht).
|
||
|
||
### Behoben
|
||
- Klick auf einen Eintrag öffnet nun die Detailansicht.
|
||
- Vorschlags-Dropdown an das Design der Erweiterung angeglichen.
|
||
|
||
## [2.0.0]
|
||
|
||
### Hinzugefügt
|
||
- Erstveröffentlichung: Autofill für Benutzer-, Passwort- und 2FA-Felder, Popup mit Liste/Suche,
|
||
Anlegen neuer Einträge, Einstellungen für Server-URL und Token.
|