Sécurité & Authentification
La plateforme utilise un modèle de sécurité robuste combinant Authentification Stateful de Session (via JWT ou Token Opaques) et Contrôle d'Accès Basé sur les Rôles (RBAC).
Stratégie d'Authentification
Le flux d'authentification est géré par AuthService.
- Login : L'utilisateur poste email/password.
- Vérification : Le mot de passe est vérifié contre le hash dans la table
users. - Émission de Token : Un AdonisJS Auth Token est généré et renvoyé au client.
- 2FA (Optionnel) : Si activé,
2faServicegénère un code TOTP qui doit être vérifié avant l'accès complet.
Autorisation (RBAC)
Nous utilisons un système RBAC strict et sur mesure.
Modèle de Données
- User : L'entité qui se connecte.
- Role : Une collection nommée de permissions (ex: "Admin Écurie", "Entraîneur", "Spectateur").
- A un attribut
colorpour l'affichage UI.
- A un attribut
- Permission : Un ID de capacité granulaire (ex:
camera:view,camera:edit,user:create).
Détails d'Implémentation
- Table Pivot :
role_permissionslie les Rôles aux Permissions. - Service Scope :
PermissionScopeServiceest responsable de vérifier si un Utilisateur a la permission requise pour une ressource spécifique (ex: "Utilisateur A peut-il voir Caméra B ?"). Il gère la hiérarchie de propriété (Entreprise -> Site -> Utilisateur).
Sécurité API
- Middleware : La plupart des routes sont protégées par le middleware
auth. - Rate Limiting : Appliqué aux endpoints sensibles (Login, Reset Password) pour prévenir les attaques brute-force.