§ 03 / 05 — AUTHENTIFICATION JWT & OAUTH2

Authentification et droits : la sécurité sans friction.

Authentification par jetons (JWT) bien mise en œuvre : 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.

§ 01 — Le problème

Le problème.

Sans expert
  • 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é.

§ 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.php php
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
§ 01

Authentification simple

2 semaines

Jetons JWT + renouvellement + rôles classiques. Pour une API interne ou un SaaS B2B standard.

  • Signature forte
  • Renouvellement automatique
  • Rôles utilisateurs
  • Révocation instantanée
  • Tests
§ 02

Droits fins complets

3 à 4 semaines

Tout du simple + permissions fines, règles métier, journal d'audit, API d'administration.

  • Tout du simple
  • Permissions fines
  • Règles métier
  • Journal d'audit
  • API d'administration
§ 03

Serveur OAuth2

5 à 10 semaines

Serveur OAuth2 complet pour devenir fournisseur d'identité : connexion utilisateur, accès machine à machine, permissions fines, portail client.

  • Tout des droits fins
  • Serveur OAuth2
  • Connexion utilisateur
  • Permissions
  • Portail client

Tarifs sur devis après cadrage · forfait ou régie selon le format

§ 05 — Cas client · SaaS santé · 5 000 pros connectés

SaaS santé HDS

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 sur l'auth.

§ 01 Jeton 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).

§ 02 Duré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.

§ 03 Signature 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.

§ 04 Comment 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.

§ 05 Inté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.

§ 06 Conformité 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).

§ 06 — Voir aussi
§ 08 — Mettre la forge au travail

15 minutes pour savoir
si on peut forger ensemble.

Un appel, pas un formulaire de 12 champs. Vous m'expliquez votre besoin, je vous dis honnêtement si je suis la bonne personne, on repart avec une prochaine étape claire.

  • 01
    Compte-rendu écrit et estimation envoyés sous 24 h.
  • 02
    Aucun engagement. Aucune relance commerciale.
  • 03
    Si ce n'est pas pour moi, je vous oriente vers un confrère.