Externalises what this session held that the migrated repo did not: - vision/threadnet.md: the three capabilities that justify the forks beyond rebranding (AV scanning into encrypted rooms, call-quality defaults with a client-side-only privacy line, expiring guest access via @concierge). - issue 0043 (M5): case-insensitive uniqueness in the matrix-invitation prompt stage — the open residual of ADR-0011. - issue 0044 (M5): auto-restart consumers on SOPS values-secret change — the footgun behind the on_conflict fix sitting inactive until a manual restart. - issue 0045 (M1): report_event.admin_message_md unset — content reports dead-end with no contact path (verified still open against live config). - sources/protokolle: the raw apo-call diagnosis history, including the four ruled-out hypotheses and the harmful DB write, as the source behind the AAR. STATUS.md regenerated (M5 appears for the first time). validate, gen_status --check, upstream_drift and pruefe_prosa all green in the CI image.
39 lines
1.6 KiB
Markdown
39 lines
1.6 KiB
Markdown
---
|
|
type: issue
|
|
id: "0043"
|
|
status: open
|
|
created: 2026-08-11
|
|
milestone: M5
|
|
priority: medium
|
|
area: security
|
|
related: [docs/adr/0011-enrollment-localpart-kollision-verweigern.md]
|
|
---
|
|
# Invitation-Flow: case-insensitive Eindeutigkeitsprüfung im Prompt-Stage
|
|
|
|
> Offener Rest aus [ADR-0011](../adr/0011-enrollment-localpart-kollision-verweigern.md); GitLab-seitig als [gitops#61](https://git.lab/axion1337.chat/axion1337.chat-gitops/-/issues/61) verfolgt.
|
|
|
|
## Problem / Motivation
|
|
|
|
Die Kontoübernahme über kollidierende Localparts ist geschlossen — MAS steht auf
|
|
`on_conflict: fail` (ADR-0011, live nach MAS-Neustart). Das ist die harte
|
|
Sicherheitsgrenze, aber sie greift erst **beim Login**: Ein Nutzer, der bei der
|
|
Registrierung einen bereits vergebenen Namen (oder eine Schreibweise-Variante wie
|
|
`boje` neben `Boje`) wählt, bekommt kein Feedback im Flow, sondern läuft später in
|
|
einen fehlgeschlagenen Login. Authentiks eigene Eindeutigkeit ist case-sensitive
|
|
und deckt Kollisionen mit bestehenden Matrix-Konten nicht ab.
|
|
|
|
## Acceptance
|
|
|
|
- Der `matrix-invitation`-Flow prüft im Prompt-Stage den gewünschten
|
|
Benutzernamen **case-insensitive** gegen bestehende Konten und weist eine
|
|
Kollision schon bei der Registrierung sichtbar ab.
|
|
- Als Blueprint reproduzierbar (`apps/authentik/authentik-blueprints.yaml`), nicht
|
|
nur als Klick im Admin-UI.
|
|
- Gegenprobe: Registrierung mit einem existierenden Namen in abweichender
|
|
Schreibweise scheitert im Flow, nicht erst beim Login.
|
|
|
|
## Notes
|
|
|
|
Rein defensive Ergänzung / UX — der Übernahme-Vektor selbst ist bereits zu.
|
|
Deshalb M5 (Härtung, nicht Reparatur) und `priority: medium`.
|