v1.0 Novembre 2025
6.2.1

Authentification et Autorisation

La solution de cashback nouvelle génération

24 novembre 2025
Version 1.0
Sécurité

Matrice Authentification par Composante

Composante Authentification Autorisation 2FA
Application Mobile Email/MDP + Biométrie RBAC User Optionnel
Dashboard Partenaire Email/MDP RBAC Merchant Recommandé
Dashboard Admin Email/MDP + 2FA RBAC Admin (3 niveaux) OBLIGATOIRE
Site Vitrine Aucune (public) N/A N/A
API Backend JWT Bearer Token Scopes + Permissions Via client
1

INTRODUCTION ET OBJECTIFS

1.1 Contexte

Ce document décrit l'architecture complète d'authentification et d'autorisation de la plateforme REWAPP. Il couvre les mécanismes de vérification d'identité, la gestion des sessions, les modèles de permissions et les mesures de protection contre les attaques.

L'authentification et l'autorisation constituent le premier rempart de sécurité de l'écosystème REWAPP, protégeant à la fois les données personnelles des utilisateurs et les transactions financières.

1.2 Objectifs de Sécurité

  • Protection des identités

    Garantir que seuls les utilisateurs légitimes accèdent à leur compte

  • Protection des transactions

    Sécuriser les opérations financières (virements, QR codes)

  • Conformité réglementaire

    Respecter RGPD et PCI DSS pour les données bancaires

  • Expérience utilisateur

    Maintenir une authentification fluide sans friction excessive

2

ARCHITECTURE D'AUTHENTIFICATION

2.1 Vue d'Ensemble

L'architecture d'authentification REWAPP repose sur le protocole JWT (JSON Web Token) avec signature asymétrique RSA (RS256), garantissant l'intégrité et l'authenticité des tokens.

PRINCIPES FONDAMENTAUX
  • Stateless : Aucune session côté serveur, scalabilité horizontale
  • Token-based : JWT pour toutes les requêtes authentifiées
  • Séparation des tokens : Access token court + Refresh token long
  • Révocation : Blacklist Redis pour invalidation immédiate

2.2 Flux d'Authentification Global

Étape 1 : Soumission

L'utilisateur soumet ses identifiants (email + mot de passe)

2
Étape 2 : Validation

Le serveur valide les credentials contre la base de données

3
Étape 3 : Génération Tokens

Si valide, génération d'un access token (15 min) et refresh token (7 jours)

4
Étape 4 : Retour Tokens

Les tokens sont retournés au client

5
Étape 5 : Utilisation

Le client utilise l'access token dans le header Authorization pour chaque requête

6
Étape 6 : Renouvellement

À expiration, le refresh token permet d'obtenir un nouvel access token

2.3 Points d'Entrée Authentification

Endpoints d'Authentification

Endpoint Méthode Description Rate Limit
/api/v1/auth/register POST Inscription nouvel utilisateur 3/heure/IP
/api/v1/auth/login POST Authentification email/mot de passe 5/15min/IP
/api/v1/auth/login/biometric POST Authentification biométrique 10/min
/api/v1/auth/refresh POST Renouvellement access token 10/min
/api/v1/auth/logout POST Déconnexion et invalidation N/A
/api/v1/auth/verify-email POST Vérification email 5/heure
/api/v1/auth/forgot-password POST Demande réinitialisation 3/heure/email
/api/v1/auth/reset-password POST Réinitialisation mot de passe 3/heure
3

AUTHENTIFICATION PAR EMAIL ET MOT DE PASSE

3.1 Processus d'Inscription

3.1.1 Données Requises

Champs d'inscription

Champ Type Validation Obligatoire
email string Format email RFC 5322, unique en base OUI
password string Min 8 caractères, 1 majuscule, 1 chiffre, 1 spécial OUI
firstName string 2-50 caractères, lettres uniquement OUI
lastName string 2-50 caractères, lettres uniquement OUI
phoneNumber string Format E.164 (+33xxxxxxxxx) OUI
birthDate date 18 ans minimum OUI
acceptTerms boolean Doit être true OUI

3.1.2 Flux d'Inscription

  1. 1
    Validation des données entrantes

    Format, unicité email

  2. 2
    Hashage du mot de passe

    bcrypt avec 10 rounds

  3. 3
    Création du compte utilisateur

    Statut: PENDING_VERIFICATION

  4. 4
    Génération token de vérification

    UUID, validité 24h

  5. 5
    Envoi de l'email de vérification

    Via SendGrid/Brevo

  6. 6
    Retour succès

    "Email de vérification envoyé"

3.1.3 Vérification Email

Le lien de vérification contient un token UUID unique :

URL
https://app.rewapp.fr/verify-email?token={verification_token}

À la validation :

  • Statut compte passe à ACTIVE
  • Token de vérification invalidé
  • Email de bienvenue envoyé
  • Connexion automatique possible

3.2 Processus de Connexion

3.2.1 Authentification Standard

POST /api/v1/auth/login

Authentifie un utilisateur et retourne les tokens JWT.

Requête
JSON
{
  "email": "jean.dupont@example.com",
  "password": "MonMotDePasse123!",
  "deviceId": "device_xyz789",
  "deviceName": "iPhone 14 Pro"
}
Réponse 200 OK
JSON
{
  "success": true,
  "data": {
    "accessToken": "eyJhbGciOiJSUzI1NiIs...",
    "refreshToken": "eyJhbGciOiJSUzI1NiIs...",
    "expiresIn": 900,
    "tokenType": "Bearer",
    "user": {
      "id": "user_abc123",
      "email": "jean.dupont@example.com",
      "firstName": "Jean",
      "lastName": "Dupont"
    }
  }
}

3.2.2 Validation des Credentials

  1. 1
    Recherche utilisateur par email

    Case-insensitive

  2. 2
    Vérification statut compte

    ACTIVE requis

  3. 3
    Comparaison mot de passe hashé

    bcrypt.compare()

  4. 4
    Vérification IP/Device

    Détection anomalie

  5. 5
    Si succès

    Génération tokens + log connexion

  6. 6
    Si échec

    Incrémentation compteur tentatives

3.3 Politique de Mots de Passe

3.3.1 Exigences de Complexité

Critères par type d'utilisateur

Critère Utilisateur Partenaire Admin
Longueur minimum 8 caractères 10 caractères 12 caractères
Majuscule requise 1 minimum 1 minimum 2 minimum
Chiffre requis 1 minimum 1 minimum 2 minimum
Caractère spécial 1 minimum 1 minimum 2 minimum
Historique interdit 5 derniers 5 derniers 10 derniers
Expiration Jamais 90 jours 60 jours

3.3.2 Caractères Spéciaux Acceptés

Caractères
! @ # $ % ^ & * ( ) - _ = + [ ] { } | ; : ' " , . < > / ? `

3.3.3 Hashage et Stockage

bcrypt Algorithme
10 Rounds
Hash Stockage
JAMAIS le mot de passe en clair

Seul le hash bcrypt est stocké en base de données.

4

AUTHENTIFICATION BIOMÉTRIQUE

4.1 Technologies Supportées

Technologies biométriques

Technologie Plateforme Niveau Sécurité Implémentation
Face ID iOS 14+ Élevé LocalAuthentication Framework
Touch ID iOS 14+ Élevé LocalAuthentication Framework
Fingerprint Android 10+ Élevé BiometricPrompt API
Face Recognition Android 10+ Moyen BiometricPrompt API

4.2 Flux d'Activation Biométrique

  1. 1
    Demande d'activation

    Utilisateur connecté souhaite activer la biométrie

  2. 2
    Vérification hardware

    Capteur présent et configuré

  3. 3
    Prompt biométrique natif

    Confirmation d'identité

  4. 4
    Génération biometric_token

    Token unique côté serveur

  5. 5
    Stockage sécurisé

    Keychain (iOS) / Keystore (Android)

  6. 6
    Association en base

    device_id + biometric_token

4.3 Flux d'Authentification Biométrique

POST /api/v1/auth/login/biometric
Requête
JSON
{
  "deviceId": "device_xyz789",
  "biometricToken": "bio_token_encrypted_abc123",
  "biometricType": "FACE_ID"
}

4.4 Sécurité Biométrique

RÈGLES DE SÉCURITÉ
  • La biométrie ne remplace PAS le mot de passe initial
  • Première connexion toujours par email/mot de passe
  • Révocation possible depuis les paramètres compte
  • Révocation automatique après 3 échecs biométriques consécutifs
  • Nouveau device = nouvelle activation requise
5

ARCHITECTURE JWT ET TOKENS

5.1 Structure des Tokens

5.1.1 Access Token (Courte Durée)

15 min Durée de validité
RS256 Algorithme
API Auth Usage

Structure Header :

JSON
{
  "alg": "RS256",
  "typ": "JWT",
  "kid": "key_2025_v1"
}

Structure Payload :

JSON
{
  "sub": "user_abc123",
  "email": "jean.dupont@example.com",
  "role": "USER",
  "permissions": ["read:points", "write:qrcode", "read:transactions"],
  "deviceId": "device_xyz789",
  "iat": 1732441800,
  "exp": 1732442700,
  "iss": "https://api.rewapp.fr",
  "aud": "rewapp-mobile"
}

5.1.2 Refresh Token (Longue Durée)

7 jours Durée de validité
Hash Stockage
Rotation Nouveau à chaque usage

5.2 Génération et Signature

5.2.1 Clés RSA

  • Type : RSA 2048 bits

    Minimum requis

  • Rotation : 90 jours

    Automatisée

  • Stockage clé privée

    Variables CapRover

  • Publication clé publique

    JWKS endpoint

Endpoint JWKS :

URL
https://api.rewapp.fr/.well-known/jwks.json

Réponse JWKS :

JSON
{
  "keys": [
    {
      "kty": "RSA",
      "kid": "key_2025_v1",
      "use": "sig",
      "alg": "RS256",
      "n": "0vx7agoebGcQ...",
      "e": "AQAB"
    }
  ]
}

5.3 Renouvellement des Tokens

POST /api/v1/auth/refresh
Requête
JSON
{
  "refreshToken": "eyJhbGciOiJSUzI1NiIs..."
}

Processus de renouvellement :

  1. 1
    Validation signature

    Vérification du refresh token

  2. 2
    Vérification non-révocation

    Blacklist Redis

  3. 3
    Vérification expiration

    Token encore valide

  4. 4
    Génération nouveau access token

    Nouveau JWT

  5. 5
    Rotation refresh token

    Nouveau refresh généré

  6. 6
    Invalidation ancien token

    Ajout à la blacklist

  7. 7
    Retour des nouveaux tokens

    Response au client

5.4 Révocation des Tokens

Mécanismes de Révocation

Déclencheur Action Effet
Déconnexion volontaire Blacklist refresh token Session terminée
Changement mot de passe Blacklist tous les refresh tokens Toutes sessions terminées
Suspension compte Blacklist + flag compte Accès bloqué
Détection fraude Blacklist + alerte Compte verrouillé
Révocation device Blacklist tokens du device Device déconnecté

5.4.2 Blacklist Redis

Structure de la blacklist :

Redis
Clé : revoked_tokens:{token_jti}
Valeur : { revokedAt, reason, userId }
TTL : Durée restante du token original
6

AUTHENTIFICATION À DEUX FACTEURS (2FA)

2FA OBLIGATOIRE

Pour tous les comptes administrateurs (Dashboard Admin)

6.1 Méthodes Disponibles

Méthodes 2FA

Méthode Type Priorité Usage
TOTP (Authenticator) Quelque chose que j'ai Principale Google Authenticator, Microsoft Authenticator, Authy
SMS Quelque chose que j'ai Backup Code SMS sur numéro vérifié
Codes de récupération Quelque chose que je sais Urgence 8 codes à usage unique

6.2 Configuration TOTP

6.2.1 Activation

  1. 1
    Demande d'activation 2FA
  2. 2
    Génération secret TOTP

    Base32, 160 bits

  3. 3
    Génération QR code

    URI otpauth://

  4. 4
    Affichage QR code + secret manuel
  5. 5
    Scan avec application authenticator
  6. 6
    Validation code TOTP
  7. 7
    Génération 8 codes de récupération
  8. 8
    Confirmation sauvegarde des codes
  9. 9
    2FA activé ✓

URI otpauth format :

URI
otpauth://totp/REWAPP:{email}?secret={secret}&issuer=REWAPP&algorithm=SHA1&digits=6&period=30

6.2.2 Validation TOTP

HMAC-SHA1 Algorithme
30 sec Période
6 chiffres Digits
±1 période Tolérance (90s)

6.3 Backup SMS

SMS UNIQUEMENT EN BACKUP

Pas en méthode principale (vulnérabilité SIM swap)

Processus :

  1. 1
    Demande code SMS backup
  2. 2
    Vérification numéro de téléphone
  3. 3
    Génération code 6 chiffres

    Validité 10 minutes

  4. 4
    Envoi via Twilio
  5. 5
    Saisie et validation

6.4 Codes de Récupération

  • 8 codes alphanumériques de 10 caractères
  • Format : XXXX-XXXX-XX
  • Usage unique : chaque code ne fonctionne qu'une fois
  • Régénération possible après authentification complète
Exemple de codes
A7B3-K9M2-XY
C4D8-P1Q5-ZW
...
7

GESTION DES SESSIONS

7.1 Paramètres de Session

Paramètres par plateforme

Paramètre App Mobile Dashboard Partenaire Dashboard Admin
Durée access token 15 minutes 15 minutes 15 minutes
Durée refresh token 7 jours 24 heures 8 heures
Timeout inactivité 30 jours 2 heures 30 minutes
Sessions simultanées 5 devices max 3 devices max 1 session unique
Confiance device Oui (biométrie) Oui (7 jours) Non

7.2 Gestion Multi-Devices

Chaque appareil connecté est identifié par :

  • deviceId : UUID généré à l'installation
  • deviceName : Nom de l'appareil (ex: "iPhone 14 Pro")
  • deviceFingerprint : Hash de caractéristiques (OS, version, etc.)
  • lastActiveAt : Dernière activité
  • ipAddress : Dernière IP connue
GET /api/v1/users/me/devices
Réponse 200 OK
JSON
{
  "success": true,
  "data": [
    {
      "deviceId": "device_abc123",
      "deviceName": "iPhone 14 Pro",
      "lastActiveAt": "2025-11-24T10:30:00Z",
      "ipAddress": "192.168.1.x",
      "isCurrent": true,
      "biometricEnabled": true
    }
  ]
}

7.3 Déconnexion à Distance

DELETE /api/v1/users/me/devices/{deviceId}

L'utilisateur peut déconnecter un appareil spécifique.

Effets :

  • Révocation de tous les tokens de ce device
  • Désactivation biométrie sur ce device
  • Notification push (si possible) sur le device déconnecté

7.4 Détection d'Anomalies de Session

Anomalies détectées

Anomalie Détection Action
Connexion nouveau pays Géolocalisation IP différente > 500km Notification + confirmation email
Connexion nouvel appareil deviceId inconnu Notification + email de sécurité
Connexions simultanées suspectes >3 IP différentes en 1h Alerte sécurité + revue manuelle
Changement soudain d'IP IP différente dans même session Invalidation session + reconnexion
8

MODÈLE D'AUTORISATION RBAC

8.1 Principes RBAC

REWAPP implémente un modèle RBAC (Role-Based Access Control) hiérarchique avec héritage des permissions.

8.2 Rôles Utilisateurs (Application Mobile)

Rôles utilisateurs

Rôle Description Permissions Principales
USER Utilisateur standard vérifié Consulter profil, transactions, points - Générer QR codes - Demander virements
USER_UNVERIFIED Email non vérifié Lecture seule, pas de transactions
USER_SUSPENDED Compte suspendu Aucun accès (erreur 403)

8.3 Rôles Partenaires (Dashboard Partenaire)

Rôles partenaires

Rôle Description Permissions Principales
MERCHANT_OWNER Propriétaire du commerce Accès complet - Configuration cashback - Gestion équipe
MERCHANT_MANAGER Gérant/Manager Scan QR - Statistiques - Gestion jour
MERCHANT_STAFF Employé Scan QR uniquement

8.4 Rôles Administrateurs (Dashboard Admin)

Rôles administrateurs

Rôle Niveau Permissions Restrictions
SUPER_ADMIN 1 Accès complet - Configuration système - Gestion autres admins - Modification ratios points - Export données sensibles Aucune
ADMIN 2 Gestion utilisateurs/partenaires - Validation partenaires - Traitement virements - Détection fraude Pas de config système - Pas de gestion admins - Pas de modification ratios
SUPPORT 3 Consultation utilisateurs - Consultation transactions - Réponse tickets - Lecture rapports Lecture seule - Pas d'accès données bancaires - Pas d'export sensible

8.5 Héritage des Permissions

Hiérarchie Admin

SUPER_ADMIN hérite de → ADMIN hérite de → SUPPORT

Un SUPER_ADMIN possède automatiquement toutes les permissions ADMIN et SUPPORT.

9

PERMISSIONS ET SCOPES

9.1 Liste des Permissions

9.1.1 Permissions Utilisateur

Permissions User

Permission Description Rôles
read:profileLire son profilUSER, USER_UNVERIFIED
write:profileModifier son profilUSER
read:pointsConsulter solde et historique pointsUSER
read:transactionsConsulter historique transactionsUSER
write:qrcodeGénérer des QR codesUSER
write:withdrawalDemander un virementUSER
read:cardsVoir ses cartes liéesUSER
write:cardsAjouter/supprimer une carteUSER

9.1.2 Permissions Partenaire

Permissions Merchant

Permission Description Rôles
read:merchant:profileVoir profil commerceSTAFF, MANAGER, OWNER
write:merchant:profileModifier profil commerceOWNER
read:merchant:statsConsulter statistiquesMANAGER, OWNER
write:merchant:cashbackConfigurer taux cashbackOWNER
write:merchant:scanScanner QR codes clientsSTAFF, MANAGER, OWNER
manage:merchant:staffGérer l'équipeOWNER

9.1.3 Permissions Admin

Permissions Admin

Permission Description Rôles
read:admin:usersConsulter utilisateursSUPPORT, ADMIN, SUPER_ADMIN
write:admin:usersModifier/suspendre utilisateursADMIN, SUPER_ADMIN
read:admin:merchantsConsulter partenairesSUPPORT, ADMIN, SUPER_ADMIN
write:admin:merchantsValider/modifier partenairesADMIN, SUPER_ADMIN
read:admin:transactionsConsulter toutes transactionsSUPPORT, ADMIN, SUPER_ADMIN
write:admin:transactionsAnnuler transactionsADMIN, SUPER_ADMIN
read:admin:withdrawalsConsulter virementsADMIN, SUPER_ADMIN
write:admin:withdrawalsTraiter virementsADMIN, SUPER_ADMIN
manage:admin:configConfiguration systèmeSUPER_ADMIN
manage:admin:adminsGestion des administrateursSUPER_ADMIN

9.2 Scopes OAuth2

Pour les intégrations tierces (notamment OpenBanking), REWAPP utilise des scopes OAuth2 :

Scopes OAuth2

Scope Description Usage
openidIdentité de baseRequis pour OIDC
profileInformations profilNom, prénom
emailAdresse emailEmail vérifié
transactions:readLecture transactionsAPI partenaire
points:readLecture solde pointsAPI partenaire
banking:linkLiaison carteIntégration OpenBanking

9.3 Vérification des Permissions

Chaque endpoint API vérifie les permissions via un guard NestJS :

TypeScript
@UseGuards(JwtAuthGuard, PermissionsGuard)
@RequirePermissions('write:qrcode')
@Post('qr-codes/generate')
async generateQrCode() { ... }

Le middleware extrait les permissions du JWT et vérifie leur présence.

10

PROTECTION CONTRE LES ATTAQUES

10.1 Protection Brute Force

10.1.1 Rate Limiting par IP

Limites par endpoint

Endpoint Limite Période Action si Dépassé
/auth/login 5 requêtes 15 minutes Blocage IP + CAPTCHA
/auth/register 3 requêtes 1 heure Blocage IP
/auth/forgot-password 3 requêtes 1 heure Blocage email
/auth/verify-email 5 requêtes 1 heure Blocage temporaire
Endpoints authentifiés 1000 requêtes 1 minute Throttling progressif

10.1.2 Compteur de Tentatives Échouées

Par compte utilisateur :

  • 3 échecs : Affichage CAPTCHA obligatoire
  • 5 échecs : Blocage temporaire 15 minutes
  • 10 échecs : Verrouillage compte + email alerte
  • Déblocage : Réinitialisation mot de passe ou intervention admin

10.2 Protection Contre l'Énumération

Messages d'erreur génériques pour ne pas révéler l'existence d'un compte :

Connexion échouée

"Email ou mot de passe incorrect"

Réinitialisation mot de passe

"Si cette adresse est associée à un compte, un email a été envoyé"

10.3 Protection CSRF

Pour les endpoints sensibles du Dashboard Admin et Partenaire :

Méthode : Double Submit Cookie

  • Cookie CSRF généré à la connexion
  • Header X-CSRF-Token requis pour mutations (POST, PUT, DELETE)
  • Validation côté serveur
Configuration cookie
SameSite: Strict
HttpOnly: false (accessible pour lecture JS)
Secure: true (HTTPS only)

10.4 Protection XSS

Content Security Policy (CSP) headers :

CSP Header
Content-Security-Policy: default-src 'self'; script-src 'self'; style-src 'self' 'unsafe-inline'; img-src 'self' data: https:; connect-src 'self' https://api.rewapp.fr

Headers de sécurité supplémentaires :

Security Headers
X-Content-Type-Options: nosniff
X-Frame-Options: DENY
X-XSS-Protection: 1; mode=block

10.5 Protection Injection

  • Requêtes paramétrées

    Prisma ORM avec requêtes préparées

  • Validation des entrées

    Class-validator avec DTOs stricts

  • Encodage des sorties

    Sanitization automatique

10.6 Protection Against Replay Attacks

Pour les opérations sensibles (QR code, virements) :

  • Nonce unique par requête
  • Timestamp avec fenêtre de tolérance (±5 minutes)
  • JTI (JWT ID) unique pour chaque token
11

INTÉGRATION OAUTH2 (OPENBANKING)

11.1 Flux de Liaison Carte Bancaire

REWAPP utilise OAuth2 Authorization Code Flow pour la liaison de carte bancaire via OpenBanking (Budget Insight, Plaid, Tink).

  1. 1
    Utilisateur clique "Lier ma carte"

    Dans l'app mobile

  2. 2
    Redirection vers fournisseur OpenBanking

    Consent screen

  3. 3
    Autorisation de l'accès

    Données bancaires

  4. 4
    Callback avec authorization_code
  5. 5
    Échange code contre access_token

    Server-to-server

  6. 6
    Stockage tokenisé

    Jamais de numéro de carte stocké

11.2 Sécurité de l'Intégration

Mesures de sécurité OAuth2

Mesure Implémentation
PKCECode Verifier + Code Challenge (SHA256)
State parameterToken aléatoire pour prévenir CSRF
NonceProtection replay attacks
Token encryptionAES-256 pour stockage
Webhooks signatureHMAC-SHA256 sur les callbacks

11.3 Révocation OpenBanking

DELETE /api/v1/banking/cards/{cardId}

L'utilisateur peut révoquer l'accès à tout moment.

Actions effectuées :

  • Révocation du token OAuth2 auprès du fournisseur
  • Suppression des données tokenisées en base
  • Arrêt de la détection automatique pour cette carte
12

AUDIT ET TRAÇABILITÉ

12.1 Événements Audités

Catégories d'audit

Catégorie Événements Rétention
AuthentificationConnexion réussie/échouée, déconnexion, 2FA activé/désactivé2 ans
Gestion compteCréation, modification profil, changement MDP, suppression5 ans (RGPD)
SessionsCréation device, révocation, détection anomalie2 ans
AutorisationsChangement de rôle, modification permissions5 ans
Admin actionsToute action admin sur un compte utilisateur5 ans

12.2 Format des Logs d'Audit

JSON
{
  "timestamp": "2025-11-24T10:30:00.000Z",
  "eventType": "AUTH_LOGIN_SUCCESS",
  "userId": "user_abc123",
  "actorId": "user_abc123",
  "ipAddress": "192.168.1.100",
  "userAgent": "REWAPP/1.0 (iOS 17.0; iPhone14,2)",
  "deviceId": "device_xyz789",
  "geoLocation": {
    "country": "FR",
    "city": "Paris"
  },
  "metadata": {
    "authMethod": "EMAIL_PASSWORD",
    "mfaUsed": false
  },
  "traceId": "trace_abc123"
}

12.3 Consultation des Logs

Dashboard Admin : Accessible aux ADMIN et SUPER_ADMIN

Filtres disponibles :

  • Période (date début - date fin)
  • Type d'événement
  • Utilisateur concerné
  • Administrateur acteur
  • Résultat (succès/échec)

Export : CSV pour analyse, PDF pour audit officiel

13

PROCÉDURES DE RÉCUPÉRATION

13.1 Mot de Passe Oublié

Flux de réinitialisation :

  1. 1
    Soumission email sur /forgot-password
  2. 2
    Génération token reset (UUID, 1h)
  3. 3
    Envoi email avec lien sécurisé
  4. 4
    Clic sur le lien → formulaire
  5. 5
    Validation nouveau mot de passe
  6. 6
    Hashage et mise à jour en base
  7. 7
    Révocation de tous les tokens actifs
  8. 8
    Email de confirmation
Sécurité

Token usage unique • Expiration 1h • Rate limit 3/heure/email • Message générique

13.2 Récupération 2FA

Si perte d'accès à l'application authenticator :

Option 1 : Codes de récupération

Saisie d'un des 8 codes → Accès restauré, recommandation de reconfigurer 2FA

Option 2 : SMS backup

Envoi code sur numéro vérifié → Accès restauré

Option 3 : Support REWAPP

Vérification d'identité manuelle → Désactivation temporaire 2FA par Super Admin

13.3 Compte Verrouillé

Causes : Tentatives échouées (10+), détection fraude, suspension admin

Procédure de déblocage :

  1. 1
    Contact support ou lien email d'alerte
  2. 2
    Vérification d'identité
  3. 3
    Réinitialisation mot de passe obligatoire
  4. 4
    Déblocage par équipe Support
  5. 5
    Recommandation d'activer 2FA
14

CONCLUSION ET RÉCAPITULATIF

14.1 Points Clés de Sécurité

  • JWT RS256 - Tokens signés asymétriquement
  • Access token court (15 min) - Limite l'impact d'un token compromis
  • Refresh token rotatif - Nouveau token à chaque renouvellement
  • Bcrypt (10 rounds) - Hashage robuste des mots de passe
  • 2FA obligatoire Admin - Protection renforcée des accès privilégiés
  • Rate limiting - Protection contre brute force et abus
  • RBAC hiérarchique - Permissions granulaires par rôle
  • Audit complet - Traçabilité de toutes les actions sensibles

14.2 Métriques de Sécurité

< 5% Connexions échouées
< 5 min Détection intrusion
100% Couverture 2FA Admin
90 jours Rotation clés

14.3 Documents Connexes

  • Document 4.3 - Architecture Backend API
  • Document 6.1 - Document de Sécurité
  • Document 6.2 - Architecture de Sécurité
  • Document 6.2.2 - Protection des Données (CSRF/XSS)
  • Document 6.2.3 - Rate Limiting et Throttling
  • Document 6.4 - Conformité PCI DSS
  • Document 8.4 - Plan de Tests Sécurité