feat(security): retire le MFA local, le code d'accès est celui du serveur (v0.8.1)

La v0.8.0 laissait cohabiter deux vérifications du code à 6 chiffres : la
fenêtre MFA locale, qui contrôlait un code contre un secret détenu par le
poste lui-même — et ne verrouillait donc que sa propre interface — puis la
validation par le serveur, seule à décider de l'accès réseau. L'ancienne
disparaît, avec le secret TOTP qu'elle stockait en clair dans config.json
(effacé au premier lancement) et l'onglet MFA du panneau Administrateur.

La saisie passe par une fenêtre dédiée qui relaie le refus exact du serveur
et laisse réessayer, la requête partant dans un thread pour qu'un serveur
muet ne fige pas l'application. Une ligne « Accès distant » distingue
désormais l'état de l'autorisation de celui du tunnel : monté sans code
validé, celui-ci ne mène nulle part.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
2026-09-06 13:06:17 +02:00
co-authored by Claude Opus 5
parent dab6c1548b
commit cc9f521a95
15 changed files with 296 additions and 345 deletions
+1 -2
View File
@@ -65,13 +65,12 @@ LOG_COLORS = {
}
# ── Bandeaux d'onglets ───────────────────────────────────────────────────────
# Cinq teintes calées sur la même luminosité et la même saturation : les
# Six teintes calées sur la même luminosité et la même saturation : les
# onglets restent distinguables sans que l'un paraisse plus clair ou plus
# saturé que les autres, ce qui était le cas des valeurs choisies à la main.
BANNER = {
"wireguard": "#1a5276",
"keys": "#1a4a6e",
"mfa": "#4a2a6e",
"test": "#1a4a7a",
"settings": "#155e52",
"security": "#7a3b1a",