Sie befinden sich hier: start » de » Interne Dokumentation » DokuWiki-Erweiterungen (WvdS) » Identity » Umsetzungsstand und Härtungsverlauf

Umsetzungsstand und Härtungsverlauf

Wartungsaufzeichnung. Sie hält fest, welcher Stand umgesetzt ist, was die Sicherheits-Härtung ausgelöst hat und welche Angaben früher hier standen und nicht mehr zutreffen. Für eine Aufgabe brauchen Sie diese Seite nicht — dafür gibt es Identity.

Status

Angenommen. Beschreibt den Stand des Pakets und den Verlauf, der zu ihm geführt hat.

Kontext und Verlauf

Status: Enrollment (Authenticator-App und Email-Einmalcode), beide Admin-Bildschirme, Namespace-Pflicht, sitewide Warnbanner, Benutzer-Reset durch den Superuser, Login-Zeitpunkt-Erzwingung sowie die Einmalcode-Abläufe (Kennwort-Zurücksetzen, Selbstregistrierung, Einladung) sind umgesetzt und lokal verifiziert. Login-Erzwingung (enforce_login) und Email-Methode (allow_email_method) sind beide standardmäßig deaktiviert (Kill-Switch-Prinzip, siehe Technische Referenz: Konfiguration).

Seit dem 4. August 2026 heißt die Einlöse-Adresse do=wkidentity_otp. Sie hieß bis dahin do=wvdsotp und trug damit als einzige lebende Stelle dieses Pakets noch das Präfix von vor der Umbenennung — beide Umbenennungs-Durchgänge hatten sie übersprungen, weil sie in der Schutzliste des Werkzeugs fälschlich als Name eines nicht installierten Fremdpakets geführt war. Die Adresse steht in den Links, die mit jedem Code verschickt werden; umbenannt wurde sie zu einem Zeitpunkt, an dem kein Vorgang offen war und deshalb kein gültiger Link existierte, den das hätte brechen können.

Das Paket heißt seit dem 3. August 2026 Identity und nicht mehr TOTP. Der Grund steht im Namen: es führt nicht nur den zweiten Faktor, sondern Anmeldung, Wiederherstellungswege und deren Erreichbarkeit. Ein Name, der das Verfahren nennt, hätte einen Gegenstand benannt, den das Paket nur noch als einen von mehreren führt.

Bis zum 4. August 2026 stand hier zusätzlich, das Plugin sei in conf/plugins.local.php deaktiviert und das betreffe „praktisch alle wvds*-Plugins gleichzeitig„. Beides trifft nicht mehr zu: die Datei enthält genau zwei Abschaltungen (authad und authldap), ein Präfix wvds gibt es seit der Umbenennung nicht mehr, und dieses Plugin ist aktiv.

Seit dem 7. August 2026 bietet das Paket zusätzlich den Identity Plugin Contract v1: eine öffentliche Fassade (helper_plugin_wkidentity_contract) plus Step-up-mit-Rücksprung (StepUp.php), über die ein anderes Plugin eine Sitzungs-Absicherung abfragen oder anfordern kann, ohne selbst TOTP oder Email-Einmalcodes zu bauen. Siehe Technische Referenz: Identity Plugin Contract v1.

Sicherheits-Härtung am 8. August 2026: Der Vertrag vom Vortag hatte ein eigenes Assurance-Vokabular eingeführt, ohne zu prüfen, ob die bestehende Namespace-Durchsetzung es tatsächlich benutzt — sie tat es nicht. enforceNamespacePolicy() prüfte weiterhin nur isEnrolled() (eine dauerhafte Kontoeigenschaft) statt echter Sitzungs-Absicherung; bei deaktiviertem enforce_login (Vorgabe) erreichte ein enrollter Nutzer einen pflichtigen Namespace allein mit Kennwort, ohne in dieser Sitzung je einen Faktor bewiesen zu haben. Diese Verwechslung ist jetzt behoben (Einzelheiten in den Konzepten), zusammen mit zwei bereits dokumentierten, jetzt geschlossenen Befunden aus docs/threat-model.md: ein TOTP-Code ließ sich innerhalb seines Toleranzfensters mehrfach verwenden (bis zu 90 Sekunden lang), und der gemailte Bestätigungscode lag als bloßer, ungesalzener SHA-256-Hash ab. Zusätzlich: ein Konto kann jetzt TOTP und Email gleichzeitig führen, und die Richtlinien-Engine berücksichtigt neben Namespace auch Gruppe und Benutzer, mit einer dokumentierten Konfliktauflösung.

Nachträge am Admin-Bildschirm

Zwei Änderungen am Bildschirm für den zweiten Faktor, die als behobene Fehler zur Wartungsaufzeichnung gehören und nicht in die Beschreibung des Bildschirms:

Button-Farbsemantik (seit 2026-07-11): Reset (pro Zeile) und das „ד zum Entfernen aus der „TOTP verlangt„-Liste sind rot (wt-btn–danger, destruktive Aktionen); „Speichern“ (Namespaces-Tab) ist neutral/weiß statt wie zuvor blau hervorgehoben — kein Button auf diesem Panel ist mehr automatisch der hervorgehobene Haupt-CTA. Der frühere lokale –wt-*-Token-Alias-Block in admin.css wurde entfernt; jede Regel referenziert den zentralen –wk-*-Kontrakt jetzt direkt (Details: Contract v3).

Cache-Busting für admin.css (seit 2026-07-12): action.php::injectAssets() verlinkte admin.css bislang ohne jeden Cache-Buster (kein ?t=…-Query-String wie beim sitweiten tseed-Mechanismus) — ein Browser, der diese URL bereits einmal geladen hatte, zeigte nach einer CSS-Änderung weiterhin die alte, zwischengespeicherte Fassung, bis ein Hard-Refresh erzwungen wurde. Das war die tatsächliche Ursache eines gemeldeten „wieder blauer Button statt weiß“ — die Farbkorrektur selbst war bereits korrekt, nur nicht bei jedem Browser sichtbar angekommen. Fix: admin.css-Link trägt jetzt einen mtime-basierten ?t=…-Query-String, gleiches Prinzip wie der sitweite tseed.

Nachweis

Geprüft in Isolation gegen Attrappen und live gegen die echte Installation (angemeldete und anonyme Sitzung, getrennte Prozessläufe), nach demselben Muster wie beim Workbench-Vertrag.

Konsequenzen

  • enforceNamespacePolicy() darf nie wieder auf isEnrolled() allein prüfen. Eine Kontoeigenschaft beantwortet die Frage nicht, ob diese Sitzung einen Faktor bewiesen hat; genau diese Verwechslung war der Auslöser der Härtung.
  • Die Einlöse-Adresse do=wkidentity_otp nicht erneut umbenennen. Sie steht in jedem verschickten Verweis; eine Umbenennung bricht jeden offenen Vorgang und ist nur dann gefahrlos, wenn keiner offen ist.
  • Kein Einmalcode und kein Bestätigungscode wandert zurück in eine ungesalzene Ablage. Beide liegen gesalzen gehasht; die frühere SHA-256-Ablage war ein benannter Befund.

Verwandte Themen

  • wvdsentra — das Auth-Backend, von dem das Admin-Panel-Muster (Reiter, JSON-Ablage) unverändert übernommen ist. Auf dieser Installation nicht eingerichtet; die Seite beschreibt die Herkunft, kein laufendes Paket.
  • Technische Referenz — der Stand, den diese Seite begründet
  • Konzepte — Assurance und Richtlinien-Engine, die aus der Härtung hervorgingen
de/wiki/dwe/wkidentity/note-implementation-history.txt · Zuletzt geändert: von 0.0.0.0