Git-Server: Zugriffs-Token häufen sich (jedes Anmelden und Bereitstellen legt ein neues an) #230
Labels
No labels
herkunft/alpha-feedback
status
blockiert
status
zu-testen
typ
bug
typ
docs
typ
enhancement
typ
feature
typ
idea
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
iris/Iris#230
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Aufgefallen beim Test des Serverwechsels (iris/Iris#223): Im Fenster Einstellungen → Git-Server → Verbundene Rechner stehen 13 Einträge, obwohl nur zwei Rechner (Mac Studio, VM) verbunden sind.
Befund (am Code und an der echten Liste von iris-server geprüft)
forge/login) legt ein Forgejo-TokenIris Vault-Sync – <Rechnername> (<Zeitpunkt>)an. Es wird nie widerrufen: nicht nach dem Verbinden, nicht bei Abbruch, nicht beim nächsten Anmelden desselben Rechners.publish_vault/ Mac-Gegenstück) legt jedes Mal ein weiteres TokenIris Vault (dieser Rechner) <Zeitpunkt> <hex>an; diese lassen sich in der Oberfläche nicht entziehen.Ziel
Pro Rechner bleibt höchstens das Token in Gebrauch plus ein nicht abgeschlossenes. Das Token, mit dem ein Rechner gerade verbunden ist, wird nie widerrufen (sonst meldet der Rechner „Token abgelehnt“).
Entwurf
Die Token-Verwaltung der Forgejo-API verlangt das Passwort (Basic-Auth). Das Passwort wird aber nie gespeichert (Regel aus #76), also kann aufgeräumt werden nur, solange es vorliegt:
forge/login): Vor dem Anlegen des neuen Tokens die Token-Liste lesen und alle Token mit dem Namensanfang dieses Rechners (Iris Vault-Sync – <Rechnername> () widerrufen, außer dem, das dieser Rechner gerade verwendet (Abgleich über die letzten 8 Zeichen: Forgejo lieferttoken_last_eight, die gespeicherten Zugangsdaten kennen das Token). Ein abgebrochenes Anmelden hinterlässt damit höchstens ein Token, das beim nächsten Anmelden verschwindet.Iris Vault (dieser Rechner)-Token widerrufen; scheitert das Verbinden, wird das neue sofort widerrufen.Gilt für Linux-Server (
vault_forge.py,forgejo_service.py) und Mac-Server (VaultSyncCore.swift/ForgejoCore.swift).Nicht Teil dieses Issues
Bereits vorhandene Altlasten werden nicht automatisch entfernt; der Nutzer entzieht sie einmalig über „Zugang entziehen“ (das jeweils neueste Token pro Rechner behalten).
PR #121 gemergt: iris/Iris#230
iris/iris-linux-server#121
Commits:
PR #231 gemergt: fix(git-server): alte Zugriffs-Token beim Anmelden und Bereitstellen widerrufen (#230)
#231
Commits:
Stand 2026-10-28: Token-Aufräumen, Linux-Server und Mac-Server
forge/loginräumt vor dem Anlegen des neuen Tokens die älteren Token dieses Rechners auf: Token-Liste lesen (seitenweise), alle mit dem NamensanfangIris Vault-Sync – <Rechnername> (widerrufen, außer dem, dessen letzte 8 Zeichen (token_last_eight) zum gerade gespeicherten Zugangs-Token dieses Rechners für diesen Server passen. Fehlttoken_last_eightund es gibt ein aktives Token, wird nichts widerrufen. Mit Zwei-Faktor-Code entfällt das Aufräumen (Forgejo nimmt einen Code nur einmal an). Fehler beim Aufräumen sind kein Anmeldefehler. „Auf diesem Rechner bereitstellen“ räumt auf dieselbe Weise die älterenIris Vault (dieser Rechner)-Token (Namensanfang als KonstanteOWN_TOKEN_PREFIXbzw.ForgejoCore.ownTokenPrefix). Linux-Server:vault_forge.py,forgejo_service.py; Mac-Server:VaultSyncCore.swift,ForgejoCore.swift,ForgejoController.swift.tests/test_vault_git_sync.pyundtests/test_vault_sync_routes.py(88 grün, 1 übersprungen),tests/test_forgejo_service.py(25 grün); Mac-Kernscripts/test-vault-sync-core.sh(232 Prüfungen, 0 Fehler),scripts/test-forgejo-core.sh(41 Prüfungen, 0 Fehler; der Lauf gegen einen echten Forgejo wurde übersprungen,IRIS_FORGEJO_BINARYnicht gesetzt); Schemes Iris und IrisClient bauen. Neu getestet (gegen Attrappen): fremde Token und Token des Nutzers bleiben, das aktive bleibt, ohnetoken_last_eightbleibt alles, mit Code kein Aufräumen, Fehler beim Aufräumen bricht die Anmeldung nicht ab.token_last_eightin der Liste steht und dass Forgejo das Löschen mit Passwort wie erwartet annimmt); iris-server (nicht deployt); die Mac-App (nicht gestartet). Die 13 vorhandenen Token auf iris-server bleiben, bis sie jemand über „Zugang entziehen“ entzieht (Entwurf: keine automatische Altlast-Bereinigung).Stand 2026-10-28: Images veröffentlicht,
latestgesetztiris-server,iris-hermes,iris-tunnel,iris-hermes-sandbox,iris-web-automation,iris-browser) liegen als v1.6.59 in der Forgejo-Registry (forgejo.lewerken.duckdns.org/iris/…), der Git-Tagv1.6.59ist gepusht, undlatestzeigt auf v1.6.59 (zuvor v1.6.58). Der Build lief auf dem Entwicklungshostalf@iris-server.bothinresolve, Aufräumen alter Git-Server-Token beim Anmelden und Bereitstellen (iris/Iris#230)./healthok).