API BANCAIRE SÉCURISÉE
API REST Symfony avec gestion de secrets via Vault et authentification forte.
Contexte
Projet de simulation : construire une API bancaire (comptes, transactions) avec contraintes : zéro secret en clair, authentification forte (JWT + 2FA), audit trail complet. Première vraie confrontation aux exigences sécurité de niveau entreprise.
Méthodologie d'Apprentissage
- 1
Étude OWASP API Security & PCI-DSS pour exigences du domaine
- 2
Apprentissage Symfony Security Bundle : authentification → JWT → 2FA
- 3
Installation HashiCorp Vault (mode dev) : concepts secrets engines, policies, tokens
- 4
Implmentation progressive : CRUD → Auth → RBAC → Vault integration → Audit
- 5
Pentest basique : curl, Postman, sqlmap pour valider endpoints
Défis Techniques
Rotation des secrets Vault en production
Tokens Vault expiraient → API perdait accès BDD. Solution : Vault Agent avec renouvellement automatique des tokens.
Performance requêtes sécurisées (3 appels Vault/requête)
Latence inacceptable. Mise en place cache in-memory (TTL 5min) → latence divisée par 4.
Audit trail immutable (exigence compliance)
Logs d'audit devaient être infalsifiables. Implémentation système hash-chain (inspiré blockchain) pour garantir intégrité 90j.
Résultats
API REST conforme OWASP avec zéro secret en clair
Auth JWT + 2FA + rotation secrets Vault automatique
Audit trail immutable couvrant 90j d'actions
Apprentissage : security by design, concepts compliance, gestion des secrets à l'échelle
Explore More