Aller au contenu principal

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.

  1. Login : L'utilisateur poste email/password.
  2. Vérification : Le mot de passe est vérifié contre le hash dans la table users.
  3. Émission de Token : Un AdonisJS Auth Token est généré et renvoyé au client.
  4. 2FA (Optionnel) : Si activé, 2faService gé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 color pour l'affichage UI.
  • Permission : Un ID de capacité granulaire (ex: camera:view, camera:edit, user:create).

Détails d'Implémentation

  • Table Pivot : role_permissions lie les Rôles aux Permissions.
  • Service Scope : PermissionScopeService est 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.