Aller au contenu

PD-28 — Validation, maintien et révocation des sessions d’authentification backend

1. Objectif

Cette spécification définit de manière contractuelle les règles de validation, de maintien, de renouvellement et de révocation des sessions d’authentification utilisées pour l’accès aux fonctionnalités backend protégées de ProbatioVault.

Elle garantit que tout accès backend est cohérent avec : - la valeur probatoire des données manipulées, - les exigences de sécurité issues de l’authentification et du MFA définies par PD-27, - la nécessité d’auditabilité et de contrôle a posteriori.

La spécification ne décrit aucun mécanisme d’implémentation et fait foi pour l’évaluation de conformité.


2. Périmètre / Hors périmètre

2.1 Inclus

  • Validation de la validité d’une session d’authentification lors de chaque accès backend protégé.
  • Maintien et renouvellement conditionnel des sessions existantes.
  • Révocation explicite des sessions à la suite d’événements de sécurité.
  • Traçabilité des décisions d’accès (validation / rejet).

2.2 Exclu (hors périmètre)

  • Définition du format interne des jetons d’authentification.
  • Mécanismes cryptographiques de signature ou de vérification des jetons.
  • Protocole d’échange avec le système d’identité amont.
  • Architecture logicielle ou technologique du backend.
  • Détermination des durées exactes de validité ou de renouvellement des sessions.

2.3 Définition normative : Endpoint backend protégé

2.3.1 Définition

Un endpoint backend protégé est un point d’accès exposé par le backend dont l’exécution nominale est conditionnée à l’existence d’une session valide associée à un utilisateur authentifié. Un endpoint backend protégé NE PEUT PAS être exécuté avec succès en l’absence d’une session valide, quelle que soit la nature de la requête ou de son contenu.

Note normative : la protection d’un endpoint est définie par son comportement observable, indépendamment de toute considération d’implémentation, de transport, de protocole ou de mécanisme technique.

2.3.2 Critères objectifs de qualification

Un endpoint backend est qualifié de protégé si, et seulement si, tous les critères suivants sont vérifiés :

  • C1 — Dépendance à une session L’endpoint requiert l’existence d’une session backend valide pour toute exécution nominale.
  • C2 — Refus systématique hors session Toute requête adressée à l’endpoint en l’absence de session valide entraîne un refus d’accès explicite, sans effet de bord métier.
  • C3 — Indépendance du contenu Le refus d’accès est déclenché avant toute prise en compte du contenu fonctionnel de la requête (paramètres, payload, action demandée).
  • C4 — Absence d’exécution partielle Aucune action métier, modification d’état, ni production de résultat fonctionnel ne doit être observable lorsque la session est invalide ou absente.
  • C5 — Stabilité de classification La qualification d’un endpoint comme protégé est stable dans le temps et indépendante du contexte d’appel, hors validité de la session.

2.3.3 Exclusions explicites

Ne sont pas considérés comme des endpoints backend protégés :

  • les endpoints accessibles sans session ;
  • les endpoints publics ou techniques (ex. santé, disponibilité) ;
  • les endpoints dont l’accès dépend uniquement de paramètres métier ou applicatifs sans notion de session.

2.4 Définition normative : Niveau homogène de validation de session

2.4.1 Définition

Le niveau homogène de validation de session désigne un ensemble invariant de vérifications fonctionnelles appliquées de manière identique, exhaustive et systématique à toute validation de session réalisée dans le cadre des endpoints backend protégés. Ce niveau est défini par les effets observables de la validation, indépendamment de toute méthode, technologie ou mécanisme technique.

2.4.2 Principe d’homogénéité

Le niveau de validation de session est dit homogène si, pour tout endpoint backend protégé : - les mêmes catégories de vérifications sont appliquées ; - selon les mêmes critères de validité ; - produisant les mêmes décisions d’acceptation ou de rejet à session équivalente.

Aucune dérogation locale, contextuelle ou spécifique à un endpoint n’est autorisée.

2.4.3 Critères normatifs du niveau attendu

Un niveau homogène de validation de session DOIT au minimum vérifier les éléments suivants :

  • V1 — Existence La session est identifiable et effectivement existante.
  • V2 — Validité temporelle La session est dans sa période de validité au moment de la requête.
  • V3 — Intégrité La session n’est ni altérée, ni incohérente, ni partiellement invalide.
  • V4 — Continuité La session n’a pas été explicitement révoquée, invalidée ou remplacée.
  • V5 — Unicité de décision Pour un état de session donné, la décision (acceptation ou rejet) est strictement déterministe, quel que soit l’endpoint backend protégé ciblé.

Note normative : Ces critères définissent le périmètre fonctionnel minimal, sans préjuger des moyens techniques permettant de les vérifier.


3. Définitions

Terme Définition
Session d’authentification État logique permettant d’associer des requêtes backend à une identité authentifiée valide.
Jeton d’accès Artefact présenté par le client pour attester d’une session d’authentification.
Validation de session Décision consistant à accepter ou rejeter un accès backend sur la base de l’état de la session.
Renouvellement Prolongation conditionnelle d’une session existante sans ré-authentification complète.
Révocation Action rendant une session invalide avant son terme naturel.
Rupture de confiance Événement défini par PD-27 invalidant la confiance d’authentification.

4. Invariants (non négociables)

ID Règle Justification
INV-01 Aucun accès backend protégé ne peut être accordé sans validation préalable de la session associée. Garantir l’absence d’accès non contrôlé.
INV-02 Une session révoquée ne peut jamais être considérée comme valide. Empêcher tout contournement de décision de sécurité.
INV-03 Une session ne peut être maintenue si la confiance d’authentification n’est plus valide au sens de PD-27. Cohérence MFA et sécurité globale.
INV-04 Toute décision d’accès (validation ou rejet) doit être traçable. Auditabilité et valeur probatoire.

5. Règles normatives

5.1 Validation des accès backend

5.1.1 Champ d’application

Les règles R-28-01 et R-28-02 s’appliquent exclusivement aux endpoints backend qualifiés de protégés au sens de la définition §2.3. Tout endpoint ne répondant pas strictement aux critères §2.3.2 est hors périmètre de ces règles.

5.1.2 R-28-01 (rappel normatif)

Pour tout endpoint backend protégé, le backend DOIT appliquer un niveau homogène de validation de session, tel que défini en §2.4, avant toute exécution nominale. Toute requête associée à une session ne satisfaisant pas l’ensemble des critères V1 à V5 DOIT être rejetée, sans effet de bord.

5.1.3 R-28-02 (rappel normatif)

Pour tout endpoint backend protégé, toute requête associée à une session absente ou invalide DOIT être rejetée de manière déterministe, sans effet de bord.

5.2 Révocation des sessions

R-28-03 — Événements déclencheurs de révocation
Tout événement qualifié de rupture de confiance d’authentification par PD-27 DOIT entraîner une révocation immédiate des sessions concernées.

R-28-04 — Portée de la révocation
Le périmètre de la révocation (globale ou ciblée) DOIT être proportionné à la portée de l’événement de rupture de confiance tel que défini par PD-27.

5.3 Maintien et renouvellement des sessions

R-28-05 — Condition de maintien
Une session existante PEUT être maintenue uniquement si aucun événement de rupture de confiance d’authentification n’est survenu depuis la dernière authentification valide.

R-28-06 — Interdiction de renouvellement
Le renouvellement d’une session DOIT être interdit dès lors que la confiance d’authentification n’est plus valide ou qu’une ré-authentification est requise. Lorsqu’un renouvellement de session est interdit à la suite d’une rupture de confiance, l’accès DOIT être refusé et une ré-authentification explicite DOIT être exigée. Aucun accès aux ressources protégées ne peut être accordé sans cette ré-authentification.

5.4 Audit et traçabilité

R-28-07 — Journalisation obligatoire
Toute décision d’accès backend, qu’elle aboutisse à une validation ou à un rejet, DOIT faire l’objet d’une journalisation.

R-28-08 — Contenu minimal des journaux
Les journaux DOIVENT permettre de déterminer, a posteriori : - la nature de la décision (validation / rejet), - le moment de la décision, - le périmètre concerné (session, device, compte), - la justification fonctionnelle de la décision, - le lien éventuel avec un événement de sécurité défini par PD-27.

5.4.1 Taxonomie normative des justificatifs et liens PD-27

Les journaux DOIVENT utiliser une taxonomie normative pour :

  • la justification fonctionnelle (justification_code) ;
  • le lien avec un événement PD-27 (pd27_event_ref).

Justification fonctionnelle (justification_code) : valeurs autorisées

Code Signification
ACCESS_VALIDATED Accès validé avec session conforme
ACCESS_REJECTED_NO_SESSION Accès rejeté : session absente
ACCESS_REJECTED_INVALID_SESSION Accès rejeté : session invalide ou expirée
ACCESS_REJECTED_REVOKED_SESSION Accès rejeté : session révoquée
ACCESS_REJECTED_REAUTH_REQUIRED Accès rejeté : ré-authentification explicite requise

Lien avec un événement PD-27 (pd27_event_ref) : valeurs autorisées

Code Référence PD-27
NONE Aucun événement PD-27 associé
PD27-R6-LOGOUT_GLOBAL R6 : déconnexion globale
PD27-R6-SECURITY_RESET R6 : réinitialisation des paramètres de sécurité
PD27-R6-FAILED_AUTH_REPEATED R6 : tentatives d’authentification infructueuses répétées

5bis. Diagrammes Mermaid

5bis.1 Diagramme d’états — Cycle de vie d’une session

stateDiagram-v2
    [*] --> ACTIVE : Authentification réussie (PD-27)

    ACTIVE --> ACTIVE : Accès validé (V1–V5 OK)\n[INV-01, R-28-01]
    ACTIVE --> RENEWED : Renouvellement conditionnel\n[R-28-05, R-28-06]
    ACTIVE --> REVOKED : Rupture de confiance PD-27\n[INV-02, R-28-03]
    ACTIVE --> EXPIRED : Dépassement durée de validité\n[V2]

    RENEWED --> ACTIVE : Session prolongée\n[R-28-05]
    RENEWED --> REVOKED : Rupture de confiance PD-27\n[INV-03, R-28-03]
    RENEWED --> EXPIRED : Dépassement durée de validité\n[V2]

    REVOKED --> [*] : Session définitivement invalidée\n[INV-02]
    EXPIRED --> [*] : Ré-authentification requise\n[R-28-06]

    note right of ACTIVE
        V1 Existence ✓
        V2 Validité temporelle ✓
        V3 Intégrité ✓
        V4 Continuité ✓
    end note

    note right of REVOKED
        Irréversible (INV-02)
        Portée proportionnée (R-28-04)
        Journalisée (INV-04)
    end note

5bis.2 Diagramme de séquence — Validation d’accès backend protégé

sequenceDiagram
    participant C as Client
    participant B as Backend (endpoint protégé)
    participant SV as Validation de session
    participant AL as Audit / Journal

    C->>B: Requête vers endpoint protégé
    activate B

    B->>SV: Valider session (V1–V5)
    activate SV

    alt Session valide (V1–V5 OK) [INV-01, R-28-01]
        SV-->>B: Session ACTIVE
        B->>AL: Journaliser ACCESS_VALIDATED [INV-04, R-28-07]
        B-->>C: 200 — Réponse nominale
    else Session absente [E-01, R-28-02]
        SV-->>B: Aucune session
        B->>AL: Journaliser ACCESS_REJECTED_NO_SESSION [INV-04, R-28-07]
        B-->>C: 401 — Accès rejeté
    else Session expirée / invalide [E-01, R-28-02]
        SV-->>B: Session EXPIRED / invalide
        B->>AL: Journaliser ACCESS_REJECTED_INVALID_SESSION [INV-04, R-28-07]
        B-->>C: 401 — Accès rejeté
    else Session révoquée [E-02, INV-02]
        SV-->>B: Session REVOKED
        B->>AL: Journaliser ACCESS_REJECTED_REVOKED_SESSION [INV-04, R-28-07]
        B-->>C: 401 — Accès rejeté
    end

    deactivate SV
    deactivate B

5bis.3 Diagramme de séquence — Révocation sur rupture de confiance PD-27

sequenceDiagram
    participant PD27 as PD-27 (Événement sécurité)
    participant SM as Gestion des sessions
    participant AL as Audit / Journal
    participant C as Client

    PD27->>SM: Rupture de confiance détectée\n(ex: PD27-R6-LOGOUT_GLOBAL)
    activate SM

    SM->>SM: Identifier sessions concernées\n[R-28-04 — portée proportionnée]
    SM->>SM: Révoquer sessions [INV-02, R-28-03]
    SM->>AL: Journaliser révocation\n[INV-04, R-28-07, R-28-08]

    deactivate SM

    Note over C,AL: Accès suivant du client

    C->>SM: Requête avec session révoquée
    activate SM
    SM-->>C: 401 — Accès rejeté\n+ Ré-authentification exigée [R-28-06]
    SM->>AL: Journaliser ACCESS_REJECTED_REAUTH_REQUIRED\n[INV-04, R-28-07]
    deactivate SM

6. Cas d’erreur

ID Situation Comportement attendu
E-01 Session absente, expirée ou invalide Accès rejeté
E-02 Session révoquée Accès rejeté
E-03 Tentative de renouvellement après rupture de confiance Accès rejeté + ré-authentification explicite exigée
E-04 Décision impossible à tracer Non-conformité

7. Critères d’acceptation (testables)

ID Critère Observable
CA-01 Toute requête invalide est rejetée Réponse d’accès refusé
CA-02 Une session révoquée n’est jamais acceptée Rejet systématique
CA-03 Une session valide est maintenue sans rupture de confiance Accès continu
CA-04 Toute décision est journalisée Entrée de log vérifiable

7.1 Traçabilité normative vers les tests

7.1.1 Correspondance définition ↔ tests

Élément normatif Tests associés
Définition §2.3 TC-INV-01
Critères C1 à C4 TC-INV-01
Critère C5 TC-NOM-01
Périmètre R-28-01 TC-INV-01
Périmètre R-28-02 TC-NOM-01

7.1.2 Principe de testabilité

Les tests TC-INV-01 et TC-NOM-01 valident exclusivement : - la qualification normative d’un endpoint comme protégé, - le comportement observable attendu en cas de session invalide ou absente.

Ils ne présupposent aucun mécanisme d’implémentation, ni aucune classification technique implicite.

7.2 Traçabilité normative vers les tests (niveau homogène)

7.2.1 Correspondance règles ↔ tests

Élément normatif Tests associés
Définition §2.4 TC-INV-01
Critères V1–V4 TC-INV-01
Critère V5 (homogénéité) TC-NOM-01
Application R-28-01 TC-INV-01, TC-NOM-01

7.2.2 Principe de non-interprétation

Les tests vérifient l’invariance comportementale du niveau de validation de session. Ils ne valident ni l’intensité technique des contrôles, ni leur implémentation interne.


8. Scénarios de test (Given / When / Then)

Les scénarios de test de référence sont définis dans le document PD-28-tests.md et couvrent l’ensemble des invariants et critères d’acceptation.


9. Hypothèses explicites

ID Hypothèse Impact si faux
H-01 Les événements de rupture de confiance sont définis par PD-27 Incohérence sécurité
H-02 La source d’identité amont est fiable Décisions non valides

10. Points à clarifier

  • Objet exact de la révocation : session logique, jeton d’accès ou les deux. La révocation s’applique à la session d’authentification en tant qu’état logique. Tout jeton associé à une session révoquée DOIT être considéré comme invalide et ne plus permettre l’accès aux ressources protégées.
  • Délai maximal acceptable pour qu’une révocation soit effective. La révocation d’une session DOIT être effective sans délai injustifié du point de vue de l’accès aux ressources protégées. Toute acceptation d’accès postérieure à une révocation constitue une non-conformité.
  • Durée maximale de maintien ou de renouvellement d’une session. La durée maximale de maintien ou de renouvellement d’une session DOIT être bornée. Les valeurs applicables sont définies par une politique de sécurité distincte. Une session ne DOIT en aucun cas être maintenue ou renouvelée indéfiniment.
  • Politique de conservation des journaux d’audit. La durée de conservation des journaux d’audit DOIT être définie par une politique de sécurité distincte. Les journaux de décisions d’accès DOIVENT être conservés sur cette durée pour garantir l’auditabilité. L’expiration des journaux ne DOIT pas réduire les garanties d’auditabilité applicables sur la période requise.

Références

  • Epic : PD-182 AUTH
  • JIRA : PD-28
  • Documents associés : PD-23, PD-26, PD-27