Référence d'API — @nodefony/security — racine
stable
Documentation › Référence d’API › @nodefony/security › racine
Générée depuis les déclarations de types publiées de
@nodefony/security10.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" — 5 symboles.
Classes (4)#
CsrfTokenManager#
class CsrfTokenManager
Jeton synchronizer CSRF — modèle double-submit signé (OWASP CSRF Prevention Cheat Sheet, « Signed Double-Submit Cookie »). Le token est nonce.HMAC-SHA256(secret, nonce) (base64url), posé dans un cookie LISIBLE (csrf-token, non HttpOnly) ET rejoué par le client dans l’en-tête x-csrf-token. La défense @CsrfProtect exige les deux PRÉSENTS, ÉGAUX (double-submit) et la signature HMAC VALIDE.
constructor(secret: string)issue(): string— Émet un token signénonce.signature(base64url).verify(headerToken: string, cookieToken: string): boolean— Vérifie une mutation@CsrfProtect: en-tête ET cookie présents, ÉGAUX (double-submit, comparaison à temps constant) et signature HMAC valide.
RoleHierarchyWalker#
class RoleHierarchyWalker
Résout la hiérarchie de rôles — ROLE_ADMIN hérite ROLE_USER, etc.
constructor(hierarchy?: Record<string, readonly string[]>)hasRole(userRoles: readonly string[], required: string): boolean— L’utilisateur (rôles plats) possède-t-il le rôle requis, hiérarchie résolue ?reachableRoles(userRoles: readonly string[]): Set<string>— Ensemble complet des rôles atteignables (plats + hérités).
SecuredArea#
class SecuredArea implements ISecuredArea
Zone sécurisée concrète — pattern d’URL compilé + métadonnées d’authentification.
readonly name: string— Nom de la zone ("main_api","admin"…).readonly pattern: RegExp— Pattern d’URL compilé.readonly security: boolean— Zone protégée (Zero Trust) ;false= zone publique explicite.readonly stateless: boolean— Stratégie d’identité AU-DESSUS du protocole.readonly mode: "first" | "all"— Sémantique de la chaîne :"first"= le premier authenticator qui reconnaît la requête authentifie ;"all"= tous doivent passer (MFA — le DERNIER porte l’identité).readonly authenticators: readonly string[]— Noms des authenticators à exécuter (sémantique selonmode).readonly host?: string— Domaine/vhost de la zone (ex.readonly realtime: boolean— Zone valable AUSSI pour le WebSocket (framesapi.request+subscribe), pas seulement HTTP.readonly resource?: string— URI canonique de la ressource protégée par cette zone — l’audience qu’un jeton doit porter pour y être accepté (RFC 8707 §2).readonly entryPoint?: string— Page de connexion vers laquelle le pare-feu conduit un visiteur anonyme qui NAVIGUE (302vers<entryPoint>?from=<chemin demandé>), au lieu du401.readonly subjectPolicy?: "require" | "ephemeral"— Politique de rattachement du sujet d’un jeton TIERS propre à cette zone, ouundefinedpour suivreresourceServer.subjectPolicy.readonly ephemeralRoles?: readonly string[]— Rôles accordés par cette zone à un appelantephemeral— définis dès que la zone déclaresubjectPolicy: "ephemeral"(vide si elle n’en écrit aucun : un pouvoir local ne s’hérite jamais de la politi …readonly roles: readonly string[] | null— Rôles exigés par défaut dans la zone, ounullquand elle n’en exige aucun.constructor(name: string, config: ISecurityAreaConfig)matchPath(pathname: string, host?: string): boolean— Cœur du match — pathname (+ host éventuel) déjà extraits, SANScontext.match(context: ContextType): boolean— La requête tombe-t-elle dans cette zone ?
default#
class Security extends Module
@nodefony/security — couche de sécurité de Nodefony (refonte 2026, P6).
constructor(kernel: Kernel)configSchema(): unknown— JSON Schema de la config security → data plane admin (config riche Studio).onKernelBoot(): Promise<this>— Enregistre les data planes admin sécurité (/nodefony/security/api/*, P6.14) ET utilisateur (/nodefony/user/api/*, P6.15) auprès du broker AVANT que framework ne monte les routes (onReady…onKernelReady(): Promise<this>— Déclare au bilan de démarrage les routes métier laissées PUBLIQUES.
Fonctions (1)#
amrForFactor#
function amrForFactor(factor: string): readonly string[]
Valeurs RFC 8176 d’un facteur nommé par un chemin d’authentification.