JWT API Platform : authentification et droits sans friction.
Authentification par jetons (JWT) bien mise en œuvre avec API Platform : jetons courts, renouvellement automatique, signature forte, révocation, journal d'audit. OAuth2 pour l'intégration avec des services tiers, droits fins par ressource, et traçabilité complète.
Jetons immortels — Qui ne meurent jamais — voler un jeton = accès à vie.
Secret partagé entre services — Un seul service compromis = tous compromis.
Pas de révocation — Impossible d'exclure un utilisateur compromis en urgence.
Droits binaires — ADMIN ou pas — impossible de gérer la nuance des permissions.
Aucun journal d'audit — Impossible de savoir qui a fait quoi sur l'API, après incident.
Avec Vulcain
Jeton d'accès 15 min + jeton de renouvellement 7 jours remplacé à chaque usage
Signature forte avec clé privée serveur
Liste de révocation instantanée
Droits fins (rôles + permissions + règles par ressource)
Journal d'audit complet exportable.
§ 02 — Ce qui est livré
Ce qui est livré : JWT API Platform prêt pour la prod.
§ 01
Jetons courts + renouvellement
Jeton d'accès 15 min, jeton de renouvellement 7 jours remplacé à chaque usage, stockage sécurisé dans un cookie non accessible au JavaScript, protection contre les usages détournés.
Accès 15 min
Renouvellement 7 j
Cookie sécurisé
Anti-détournement
§ 02
Signature forte
Clé privée côté serveur API seulement, clé publique distribuable aux consommateurs. Pas de secret partagé. Rotation possible sans coupure.
Signature asymétrique
Clé publique distribuable
Rotation de clés
Vérification standardisée
§ 03
OAuth2 pour vos partenaires
Protocole standard OAuth2 pour les intégrations tierces (se connecter avec Google, Microsoft, ou votre propre serveur), permissions demandées à l'utilisateur.
Flux sécurisé utilisateur
Identifiants machine à machine
Permissions fines
Standards respectés
§ 04
Droits fins par ressource
Rôles (ADMIN, UTILISATEUR) + permissions précises (lire produit, modifier produit) + règles métier par ressource (« ce commercial voit sa zone seulement »).
Rôles utilisateurs
Permissions fines
Règles métier
Hiérarchie
§ 05
Révocation instantanée
Liste de révocation en cache mémoire rapide. Une révocation d'utilisateur coupe tous ses accès en moins d'une seconde.
Liste de révocation
Exclusion < 1 s
API d'administration
Événement déconnexion
§ 06
Journal d'audit
Chaque action enregistrée : utilisateur, adresse IP, endpoint, horodatage, résultat. Export CSV, durée de conservation paramétrable.
Journal par action
IP + navigateur
Conservation paramétrable
Export CSV
src/Security/Voter/ProductVoter.phpphp
final class ProductVoter extends Voter
{
public const VIEW = 'product:view';
public const EDIT = 'product:edit';
protected function supports(string $attribute, mixed $subject): bool
{
return in_array($attribute, [self::VIEW, self::EDIT], true)
&& $subject instanceof Product;
}
protected function voteOnAttribute(string $attribute, mixed $subject, TokenInterface $token): bool
{
$user = $token->getUser();
if (!$user instanceof User) {
return false;
}
return match ($attribute) {
self::VIEW => $subject->getTenant() === $user->getTenant(),
self::EDIT => $user->hasPermission('product:write')
&& $subject->getTenant() === $user->getTenant(),
};
}
}
Une règle d'accès métier centralise la décision « qui a le droit de faire quoi ». Le jeton apporte l'identité ; la permission se décide ici.
§ 04 — Tarifs & délais
Offres authentification JWT API Platform.
§ 01
Authentification simple
2 semaines
Jetons JWT + renouvellement + rôles classiques. Pour une API interne ou un SaaS B2B standard.
SaaS en hébergement HDS (Hébergeur de Données de Santé). Authentification par jetons avec signature forte, droits fins à 4 niveaux, journal d'audit exportable pour la CNIL, révocation instantanée en cas d'incident.
Authentification JWT
Droits fins Symfony
Redis
API Platform
5 000+
Utilisateurs actifs
HDS
Conformité validée
< 1 s
Révocation utilisateur
§ 04 — Questions fréquentes
Questions JWT API Platform.
§ 01Authentification JWT API Platform, concrètement ça couvre quoi ?+
Jetons courts (15 min) avec renouvellement automatique, signature forte RS256, rôles et permissions fines par ressource, révocation instantanée en cas d'incident, et journal d'audit exportable. Le tout branché nativement sur API Platform, sans bibliothèque tierce à maintenir. Détail de la création d'API REST et de sa documentation OpenAPI sur les pages dédiées.
§ 02Jeton dans le navigateur ou dans un cookie ?+
Cookie sécurisé, non accessible au JavaScript, envoyé uniquement en HTTPS, limité au domaine de confiance par défaut. Le stockage navigateur classique est vulnérable aux attaques ; le cookie sécurisé ne l'est pas. Pour une API mobile, stockage sécurisé natif (Keychain iOS, Keystore Android).
§ 03Durée de vie des jetons ?+
Accès 15 min, renouvellement 7 jours. Compromis entre sécurité (court = moins d'impact en cas de fuite) et confort (pas de reconnexion incessante). Ajustable selon votre contexte.
§ 04Signature forte ou partagée ?+
Signature forte (clé privée serveur seulement) toujours pour une API publique ou distribuée. Signature partagée acceptable pour un monolithe où la clé ne sort pas. La signature forte permet de distribuer la clé publique sans risque.
§ 05Comment révoquer un jeton ?+
Les jetons étant auto-portants, la seule façon est une liste de révocation en cache rapide avec durée de vie égale à la durée restante du jeton. Sur révocation d'un utilisateur, on invalide son jeton de renouvellement, ce qui coupe les accès futurs sous 15 min.
§ 06Intégration avec votre annuaire d'entreprise (SSO) ?+
Oui : protocole SAML 2.0 via OneLogin, Okta, Azure AD. Pour les clients B2B, c'est souvent demandé. Déjà intégré sur plusieurs projets.
§ 07Conformité RGPD et audit ?+
Journal d'audit horodaté de chaque action, conservation paramétrable (12 mois en standard), export CSV pour les demandes d'accès RGPD, suppression possible sur demande (droit à l'oubli).
§ 08Un agent IA tiers (Ojin, LLM) consomme mon API : comment unifier l'authentification ?+
Le jeton de l'agent IA ne remplace pas votre JWT applicatif : on le propage côté serveur uniquement, jamais exposé au navigateur, avec réconciliation d'identité entre les deux systèmes. Détail de cette intégration sur la page Intégration Ojin AI + API Platform.
§ 09Vous gérez des règles plus fines qu'un simple rôle ADMIN/UTILISATEUR ?+
Oui, via des Voters Symfony : chaque règle métier (« ce commercial voit sa zone seulement ») devient une classe testée isolément, pas un enchevêtrement de conditions dans les contrôleurs. Le même modèle structure nos CRM Symfony sur mesure quand plusieurs profils doivent voir des données différentes. Détail des Voters dans notre article dédié à la sécurité Symfony avancée.
30 minutes pour savoir si on peut forger ensemble.
Un diagnostic express, gratuit et sans engagement. Vous m'expliquez votre besoin, je vous dis honnêtement si je suis la bonne personne, et vous repartez avec 3 recommandations concrètes pour votre projet.
01
3 recommandations concrètes sur votre projet, à la fin de l'appel.
02
Aucun engagement. Aucune relance commerciale.
03
Si ce n'est pas pour moi, je vous oriente vers un confrère.