Cas d'usage

Logins, resets, MFA, révocations de session, tout dans un trail

Logge les events d'authentification avec acteur, IP, user agent et résultat. Détecte le credential stuffing, rejoue les sessions suspectes et prouve à tes clients entreprise que la sécurité t'importe.

Le problème

Les libs d'authentification loggent dans stdout. Ta table `sessions` a deux booléens. Quand un user demande 'quelqu'un d'autre a-t-il ouvert mon compte mardi dernier ?', tu n'as rien à lui montrer. Quand tu veux détecter du credential stuffing, il n'y a aucune timeline à agréger. Quand un client entreprise veut un export d'events sécurité, tu n'as rien à exporter.

La façon Recalled

Émets un event pour chaque action liée à l'auth : `user.login.success`, `user.login.failed`, `user.password.changed`, `user.password.reset`, `user.mfa.enabled`, `user.session.revoked`. Inclut l'IP, le user agent et le résultat. Le dashboard Recalled te permet de filtrer `user.login.failed` sur tous les acteurs pour repérer les patterns de brute-force, ou sur un seul acteur pour répondre à une question précise.

Dans ton handler d'authentification
await recalled.events.create({
  action: "user.login.failed",
  actor: { id: user?.id ?? null, email: attempt.email },
  organization: user?.orgId,
  metadata: { reason: "invalid_password", ip: req.ip, userAgent },
});

Pourquoi les équipes sécurité choisissent Recalled

  • Résultat sur chaque tentative

    Succès ou échec fait partie du nom d'action, donc filtrer 'tous les logins échoués des 24 dernières h' est une seule requête.

  • Modèle acteur + IP

    Même les logins échoués sans user trouvé ont une IP et un user agent. Agrège pour repérer les attaques distribuées.

  • Rétention par préfixe d'action

    Garde `user.login.*` un an, expire `user.password.reset` après 90 jours. Disponible sur Pro et Scale.

  • Exportable vers ton SIEM

    Export CSV ou JSON à la demande. Pousse dans Splunk, Datadog ou là où vit ton équipe sécu.

Cas d'usage liés

Ton prochain audit log est à 2 minutes

Arrête de bricoler ta propre table de logs. Branche Recalled, émets ton premier event, passe à la suite.