Aller au contenu

PD-238 — Manifest de décomposition

Ce document est produit par l'orchestrateur Claude à l'étape 6a. Il découpe le plan d'implémentation en tâches assignées à des agents spécialisés.

Résumé

  • Story : PD-238
  • Nombre de tâches : 6
  • Agents mobilisés : agent-developer (x4), agent-qa-unit-integration (x1), agent-adversarial (x1)

Tâche 1 : agent-developer — Infrastructure Keycloak

  • Agent : agent-developer
  • LLM : claude
  • Code contract : KeycloakAdminService, KeycloakAdminConfig
  • Périmètre fichiers :
  • src/modules/auth/mfa/config/keycloak-admin.config.ts
  • src/modules/auth/mfa/services/keycloak-admin.service.ts
  • Livrable attendu :
  • Configuration Keycloak Admin API
  • Service avec circuit breaker/retry
  • Méthodes : getAccessToken, getMfaStatus, initTotp, verifyAndActivateTotp, disableMfa, regenerateRecoveryCodes
  • Dépendances : aucune

Tâche 2 : agent-developer — Reauth Module

  • Agent : agent-developer
  • LLM : claude
  • Code contract : ReauthService, ReauthController, ReauthTokenGuard, DTOs reauth
  • Périmètre fichiers :
  • src/modules/auth/services/reauth.service.ts
  • src/modules/auth/controllers/reauth.controller.ts
  • src/modules/auth/mfa/guards/reauth-token.guard.ts
  • src/modules/auth/dto/reauth.dto.ts
  • Livrable attendu :
  • Service génération reauth token JWT (sub, purpose=reauth, exp=5min)
  • Controller POST /auth/reauth avec OidcJwtAuthGuard
  • Guard validation X-Reauth-Token header
  • DTOs ReauthRequestDto, ReauthResponseDto
  • Dépendances : aucune

Tâche 3 : agent-developer — Core MFA (Errors, Filter, DTOs)

  • Agent : agent-developer
  • LLM : claude
  • Code contract : errors, MfaExceptionFilter, tous les DTOs MFA
  • Périmètre fichiers :
  • src/modules/auth/mfa/errors/mfa-management.errors.ts
  • src/modules/auth/mfa/filters/mfa-exception.filter.ts
  • src/modules/auth/mfa/dto/mfa-status.dto.ts
  • src/modules/auth/mfa/dto/totp-init.dto.ts
  • src/modules/auth/mfa/dto/totp-verify.dto.ts
  • src/modules/auth/mfa/dto/mfa-disable.dto.ts
  • src/modules/auth/mfa/dto/recovery-regenerate.dto.ts
  • Livrable attendu :
  • Classes d'erreurs ERR-238-* avec codes HTTP
  • Exception filter pour normaliser réponses
  • DTOs avec decorators class-validator et ApiProperty
  • Dépendances : aucune

Tâche 4 : agent-developer — MFA Management Service & Controller

  • Agent : agent-developer
  • LLM : claude
  • Code contract : MfaManagementService, MfaManagementController
  • Périmètre fichiers :
  • src/modules/auth/mfa/services/mfa-management.service.ts
  • src/modules/auth/mfa/controllers/mfa-management.controller.ts
  • src/modules/auth/guards/mfa-rate-limit.guard.ts
  • src/modules/auth/mfa/mfa.module.ts (update)
  • src/modules/auth/auth.module.ts (update)
  • Livrable attendu :
  • Service orchestration MFA (getStatus, initTotp, verifyTotp, disable, regenerateRecoveryCodes)
  • Controller 5 endpoints /user/mfa/*
  • Guard rate limiting MFA
  • Mise à jour modules
  • Dépendances : Tâche 1, Tâche 2, Tâche 3

Tâche 5 : agent-qa-unit-integration — Tests

  • Agent : agent-qa-unit-integration
  • LLM : claude
  • Code contract : test_mapping dans code-contracts.yaml
  • Périmètre fichiers :
  • src/modules/auth/mfa/services/__tests__/keycloak-admin.service.spec.ts
  • src/modules/auth/mfa/services/__tests__/mfa-management.service.spec.ts
  • src/modules/auth/services/__tests__/reauth.service.spec.ts
  • test/mfa-management.e2e-spec.ts
  • Livrable attendu :
  • Tests unitaires services (mock Keycloak)
  • Tests e2e couvrant TC-NOM-01 à TC-NOM-06, TC-ERR-01 à TC-ERR-14
  • Coverage > 80%
  • Dépendances : Tâche 4

Tâche 6 : agent-adversarial — Revue sécurité

  • Agent : agent-adversarial
  • LLM : claude
  • Code contract : invariants INV-238-09, INV-238-10, INV-238-02
  • Périmètre fichiers : tous les fichiers produits
  • Livrable attendu :
  • Vérification INV-238-09 (secrets jamais loggés)
  • Vérification INV-238-10 (pas de stockage secrets local)
  • Vérification INV-238-02 (pas d'accès croisé possible)
  • Rapport avec recommandations
  • Dépendances : Tâche 4

Ordre d'exécution

Phase 1 (parallèle) :
├── Tâche 1 : Infrastructure Keycloak
├── Tâche 2 : Reauth Module
└── Tâche 3 : Core MFA (Errors, Filter, DTOs)

Phase 2 (séquentielle) :
└── Tâche 4 : MFA Management Service & Controller

Phase 3 (parallèle) :
├── Tâche 5 : Tests
└── Tâche 6 : Revue sécurité

Notes de l'orchestrateur

  1. Tâches 1-3 parallélisables : Ces tâches n'ont pas de dépendances entre elles et peuvent être exécutées simultanément.

  2. Tâche 4 critique : C'est le cœur de l'implémentation qui intègre tous les composants des tâches 1-3.

  3. Points d'attention sécurité :

  4. KeycloakAdminService : vérifier que les secrets ne sont jamais loggés
  5. MfaManagementService : vérifier le mapping sub → keycloakUserId
  6. Tous les endpoints : vérifier rate limiting

  7. Gestion sessionId : Le cache Redis pour sessionId TOTP doit être implémenté dans MfaManagementService (pas dans KeycloakAdminService).

  8. Intégration existante : Réutiliser OidcJwtAuthGuard et RateLimitService existants.