---
title: "Référence d'API — @nodefony/security — racine"
source: docs/api/security/racine.md
url: https://nodefony.github.io/nodefony-core/docs/api/security/racine/
---


[Documentation](../../../) › [Référence d'API](../../) › [`@nodefony/security`](../) › racine

> 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"` — 5 symboles.

### Classes (4)

#### `CsrfTokenManager`

```ts
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`

```ts
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`

```ts
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 selon `mode`).
- `readonly host?: string` — Domaine/vhost de la zone (ex.
- `readonly realtime: boolean` — Zone valable AUSSI pour le WebSocket (frames `api.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 (`302` vers `<entryPoint>?from=<chemin demandé>`), au lieu du `401`.
- `readonly subjectPolicy?: "require" | "ephemeral"` — Politique de rattachement du sujet d'un jeton TIERS propre à cette zone, ou `undefined` pour suivre `resourceServer.subjectPolicy`.
- `readonly ephemeralRoles?: readonly string[]` — Rôles accordés par cette zone à un appelant `ephemeral` — définis dès que la zone déclare `subjectPolicy: "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, ou `null` quand 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, SANS `context`.
- `match(context: ContextType): boolean` — La requête tombe-t-elle dans cette zone ?

#### `default`

```ts
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`

```ts
function amrForFactor(factor: string): readonly string[]
```

Valeurs RFC 8176 d'un facteur nommé par un chemin d'authentification.

---

[← Toutes les références d'API](../../)
