Aller au contenu principal

IAM admin force-revoke le TOTP d'un user cible + kill toutes ses sessions

POST 

/onboarding/v0/admin/users/:user_id/mfa/totp/revoke

ADR-0019 (sub-projet F.1) — IAM admin endpoint, gated par @requires_roles(IAM_ADMIN, scope=iam:admin) + @requires_recent_mfa(SENSITIVE=60s) sur la session de l'admin. Atomique : marque le PersistentTotpSecret REVOKED (state=revoked, revoked_at=now) et invalide TOUTES les AuthSession actives du user cible avec revoked_reason=ADMIN_FORCE_REVOKE_TOTP.

Diverge du self-revoke (sub-projet E) sur 3 points :

  1. Self-target interdit (400 cannot_self_target) — l'admin agit sur un user DIFFÉRENT.
  2. Bypass du check would-lockout (action légitime fraude/compliance — lockout est intentionnel).
  3. Session-kill inconditionnel (incident-response). Sessions tuées même s'il n'y a pas de TOTP active à révoquer.

Audit : actor_user_id, target_user_id, request_id, totp_secrets_revoked_count, sessions_revoked_count, revoked_reason loggés via structlog.

Request

Responses

TOTP révoqué + sessions invalidées