SOGOMS v1.0.7 - 2FA obligatoire et Infrastructure Management
Phase 17g - Double Authentification: - TOTP avec Google Authenticator/Authy - QR code pour enrôlement - Codes de backup (10 codes usage unique) - Page /admin/security pour gestion 2FA - Page /admin/users avec Reset 2FA (super_admin) - 2FA obligatoire pour rôles configurés Phase 21 - Infrastructure Management: - SQLite pour données infra (/data/infra.db) - SSH Pool avec reconnexion auto - Gestion Incus (list, start, stop, restart, sync) - Gestion Nginx (test, reload, deploy, sync, certbot) - Interface admin /admin/infra - Formulaire ajout serveur - Page détail serveur avec containers et sites Fichiers créés: - internal/infra/ (db, models, migrations, repository, ssh, incus, nginx) - cmd/sogoms/admin/totp.go - cmd/sogoms/admin/handlers_2fa.go - cmd/sogoms/admin/handlers_infra.go - Templates: 2fa_*, security, users, infra, server_* 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
34
DOCTECH.md
34
DOCTECH.md
@@ -220,6 +220,23 @@ Interface d'administration web pour gérer les applications SOGOMS.
|
||||
- Sessions : Cookie HttpOnly + Secure + SameSite=Strict
|
||||
- CSRF : Token par session
|
||||
- Rate limiting : 5 tentatives/min par IP
|
||||
- **2FA obligatoire** : TOTP (Google Authenticator, Authy) + codes de secours
|
||||
|
||||
**Authentification à deux facteurs (2FA) :**
|
||||
|
||||
Le 2FA est obligatoire pour les rôles configurés dans `required_roles`.
|
||||
|
||||
Flux de connexion avec 2FA :
|
||||
```
|
||||
Login (password) → Session pending → /admin/2fa/verify → Session complète → Dashboard
|
||||
↓
|
||||
Code invalide → Retry (rate limited)
|
||||
```
|
||||
|
||||
Première connexion (2FA requis mais pas configuré) :
|
||||
```
|
||||
Login (password) → /admin/2fa/setup → Scanner QR + sauvegarder codes → Dashboard
|
||||
```
|
||||
|
||||
**Routes :**
|
||||
- `GET /admin/login` : page de connexion
|
||||
@@ -230,6 +247,12 @@ Interface d'administration web pour gérer les applications SOGOMS.
|
||||
- `POST /admin/apps/{app}/scan` : scan DB et génération schema
|
||||
- `GET /admin/api/apps` : liste apps (htmx partial)
|
||||
- `GET /admin/api/services/health` : statut services (htmx partial)
|
||||
- `GET /admin/2fa/verify` : page saisie code TOTP
|
||||
- `POST /admin/2fa/verify` : validation code TOTP ou backup
|
||||
- `GET /admin/2fa/setup` : page activation 2FA (QR code)
|
||||
- `POST /admin/2fa/setup` : confirmation activation 2FA
|
||||
- `POST /admin/2fa/disable` : désactivation 2FA
|
||||
- `GET /admin/security` : page paramètres sécurité
|
||||
|
||||
**Scan DB et génération automatique :**
|
||||
|
||||
@@ -256,11 +279,22 @@ rate_limit:
|
||||
login_max: 5
|
||||
login_window: 60
|
||||
|
||||
two_fa:
|
||||
enabled: true
|
||||
issuer_name: "SOGOMS Admin"
|
||||
required_roles:
|
||||
- super_admin # 2FA obligatoire pour ce rôle
|
||||
|
||||
users:
|
||||
- username: pierre
|
||||
password_hash: "$2a$12$..."
|
||||
role: super_admin
|
||||
email: pierre@example.com
|
||||
two_fa_enabled: true
|
||||
two_fa_secret: "BASE32SECRET..." # généré lors du setup
|
||||
backup_codes: # bcrypt hashed
|
||||
- "$2a$10$..."
|
||||
- "$2a$10$..."
|
||||
|
||||
- username: client1
|
||||
password_hash: "$2a$12$..."
|
||||
|
||||
Reference in New Issue
Block a user