Description : Le besoin d’authentification JWT pour POST /auth/reauth n’est pas défini. La spec impose le JWT pour /user/mfa/* uniquement, sans règle explicite pour /auth/reauth.
Sévérité : Majeur
Recommandation : Clarifier si /auth/reauth exige un JWT valide et le code d’erreur associé en cas d’absence.
Description : La valeur attendue de method n’est pas définie (enum, valeurs possibles, casse). La compatibilité PD-106 est invoquée sans précision formelle.
Sévérité : Majeur
Recommandation : Préciser l’ensemble des valeurs autorisées pour method.
Localisation : Spec §3 (Définitions), INV-238-04, Points à clarifier #2
Description : Le TTL/validité de qrCodeUri (expiresAt) est mentionné mais non défini. La vérification de conformité temporelle reste non testable sans valeur contractuelle.
Sévérité : Mineur
Recommandation : Contractualiser la durée ou déclarer explicitement la dépendance Keycloak comme hors périmètre testable.
Description : Aucun comportement d’erreur n’est défini pour /auth/reauth en cas de mot de passe invalide (code ERR-238-*). Les tests ne peuvent pas vérifier l’erreur contractuelle.
Sévérité : Majeur
Recommandation : Définir le code d’erreur et le comportement attendu pour l’échec de reauth.
Description : L’isolation d’accès repose sur l’identification correcte de l’utilisateur via claims OIDC. En cas de désalignement entre JWT et mapping Keycloak Admin API, un accès croisé devient possible.
Sévérité : Majeur
Recommandation : Exiger explicitement la vérification de cohérence entre sub JWT et l’identifiant Keycloak utilisé pour les opérations MFA.
Description : Le contrôle “pas de logs de secrets” dépend de la capacité à auditer tous les canaux de logs (app, proxy, middleware). La surface exacte d’audit n’est pas contractualisée.
Sévérité : Mineur
Recommandation : Définir explicitement les surfaces de logs auditables pour la conformité (app, reverse proxy, APM, etc.).
Description : Le format d’erreur pour reauth invalide est défini, mais la validation du token n’exige pas explicitement la vérification des claims sub et purpose côté backend (seulement défini dans la définition, pas en règle d’acceptation).
Sévérité : Majeur
Recommandation : Ajouter une exigence testable sur la validation stricte des claims sub et purpose pour l’acceptation du reauth token.