Nodefony 10.0.0-beta.5
Framework Node.js fullstack — HTTP & WebSocket, même contexte

Référence d'API — @nodefony/security — service

stable

Documentation › Référence d’API › @nodefony/security › service

Générée depuis les déclarations de types publiées de @nodefony/security 10.0.0-beta.5 : exactement ce que reçoit une application qui l’installe. Cette page n’existe dans aucun dépôt — pour la corriger, on corrige le TSDoc du code.

@nodefony/security#

import { … } from "@nodefony/security" — 26 symboles.

Classes (15)#

AccessTokenVerifierService#

class AccessTokenVerifierService extends Service

Pose (ou non) le vérificateur de jetons d’accès dans le conteneur — celui qu’une ressource protégée (porte MCP, zone external-jwt) interroge.

ApiKeyService#

class ApiKeyService extends Service

Gestion des clés API personnelles (PAT, P6.12) — émission, listing et révocation, au-dessus du ITokenStore partagé (posé au container par le TokenService, qui en possède aussi le gc). Un PAT et un refresh token cohabitent dans la même table (kind) ; ce service ne traite que kind:"pat".

AuditService#

class AuditService extends Service implements IAuditSink

Journal d’audit de sécurité (P6.14) — collecte les événements de sécurité (login, refus d’accès, jeton émis/révoqué, défense CSRF/CORS, verrou WS) émis EXPLICITEMENT par le firewall, les authenticators et les controllers. Distinct du log de trafic (JsonAuditLogger, P3.1, 1 PDU/requête) : ici on trace les transitions d’état de sécurité, jamais le hot-path par requête.

AuthFlow#

class AuthFlow extends Service

Flux de session BFF — login/logout/me côté serveur (P6 J3).

Authorization#

class Authorization extends Service implements IAuthorizationService

Service d’autorisation Nodefony (niveau C, P6 J6) — décide d’un accès via un jury de IAccessVoter.

Cors#

class Cors

Politique CORS de Nodefony — Same-Origin Policy assouplie côté serveur (Fetch Standard / W3C CORS protocol). Logique PURE et synchrone : décide les en-têtes Access-Control-* à poser pour une origine donnée. Instanciée une fois au boot par le firewall, testable sans serveur.

Csrf#

class Csrf

Défense CSRF par défaut de Nodefony — Fetch Metadata d’abord (modèle Go 1.25 CrossOriginProtection / OWASP 2025), repli Origin/Referer pour les vieux navigateurs. Logique PURE et synchrone (aucun I/O, aucune alloc sur le hot-path GET) → testable sans serveur, instanciée une seule fois au boot par le firewall.

Firewall#

class Firewall extends Service implements IFirewall

Orchestrateur de sécurité Nodefony — refonte 2026 (P6).

KeycloakService#

class KeycloakService extends Service

Service keycloak — toutes les actions de Nodefony sur un serveur Keycloak, en un point du conteneur.

OAuth2Service#

class OAuth2Service extends Service

Social login OAuth 2.0 (P6 J9) — orchestrateur du flux Authorization Code.

SecurityHeaders#

class SecurityHeaders

En-têtes de sécurité applicatifs de Nodefony (couche @nodefony/security, complémentaire du socle transport de @nodefony/http). Pré-calcule une fois au boot la table d’en-têtes CONSTANTS (CSP statique, Referrer-Policy, isolation cross-origin COOP/COEP/CORP, Origin-Agent-Cluster, Permissions-Policy) → zéro alloc, zéro concat par requête (le firewall la pose telle quelle).

TokenService#

class TokenService extends Service

Orchestrateur des jetons longue durée (P6 J4) — émission/refresh des JWT + maintenance du store (le seam ITokenStore.gc() n’a pas d’autre appelant).

TotpService#

class TotpService extends Service

2FA TOTP (P6.17, RFC 6238) — service d’orchestration du second facteur.

WebAuthnService#

class WebAuthnService extends Service

WebAuthn / passkeys (P6 J9) — orchestrateur des deux cérémonies FIDO2 (WebAuthn L3 §7.1 enregistrement, §7.2 authentification).

WebhookService#

class WebhookService extends Service

Webhooks sortants (P6.13) — service d’orchestration du registre d’endpoints.

Interfaces (10)#

IKeycloakRealmPlan#

interface IKeycloakRealmPlan

Le realm que la configuration implique, confronté au fichier d’import.

IKeycloakRealmRequest#

interface IKeycloakRealmRequest

Ce qu’on demande au realm dérivé.

IOAuthAuthorization#

interface IOAuthAuthorization

Données à porter en session entre authorize et callback (anti-replay).

ISafeUser#

interface ISafeUser

Projection PUBLIQUE de l’utilisateur — ce qui sort en JSON vers le client. Jamais l’entité brute : le hash (IPasswordAuthenticatedUser.password) ne doit traverser ni la sérialisation ni un log.

ITokenResponse#

interface ITokenResponse

Réponse d’émission de jetons — nommage RFC 6749 §5.1 (snake_case, JSON). Le JWT part en Authorization: Bearer, JAMAIS en cookie ni en URL.

IWebAuthnAssertionResult#

interface IWebAuthnAssertionResult

Résultat d’une authentification WebAuthn vérifiée.

IWebAuthnUser#

interface IWebAuthnUser

Sujet d’une cérémonie d’enregistrement — l’utilisateur qui crée un passkey.

IWebhookDeliveryPolicy#

interface IWebhookDeliveryPolicy

Politique de livraison lue par le dispatcher (Slice B).

IWebhookRegisterInput#

interface IWebhookRegisterInput

Entrée de création d’un endpoint (les champs système sont dérivés).

IWebhookSecretReveal#

interface IWebhookSecretReveal

Résultat de création/rotation : le secret en clair n’est exposé qu’ici, une fois.

Types (1)#

ILoginOutcome#

type ILoginOutcome = { status: "authenticated"; user: ISafeUser; } | { status: "mfa_required"; methods: readonly string[]; }

Issue d’un login : soit l’identité est établie (session ouverte), soit un second facteur est requis (2FA) — le mot de passe seul n’a PAS authentifié.


← Toutes les références d’API