Aller au contenu principal

IAM admin force-untrust un device d'un user cible + kill sa session liée

POST 

/onboarding/v0/admin/users/:user_id/mfa/devices/:device_id/untrust

ADR-0019 (sub-projet F.1) — IAM admin endpoint, gated par @requires_roles(IAM_ADMIN, scope=iam:admin) + @requires_recent_mfa(SENSITIVE=60s). Flip AuthDevice.trusted=False pour un device appartenant au user cible et révoque uniquement les AuthSession actives liées à ce device avec revoked_reason=ADMIN_FORCE_UNTRUST_DEVICE (targeted kill). Les autres sessions du user cible restent intactes.

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

  1. Self-target interdit (400 cannot_self_target).
  2. Le check d'existence filtre par user=target_user, pas request.user. Un device appartenant à un user tiers renvoie 404 device_not_found — JAMAIS leak l'existence cross-user (security invariant inversé d'ADR-0018).
  3. revoked_reason distinct pour la forensique SOC.

Idempotent : re-call sur un device déjà untrusted retourne 200 avec sessionsRevokedCount=0 et device_already_untrusted=true loggué pour distinguer flip réel vs replay.

Request

Responses

Device untrust + session liée invalidée (ou no-op si déjà untrusted)