Elenca i blocchi degli account

GET /v1/attack-protection/lockouts · permesso attack-protection:read

Elenca i blocchi degli account attivi nell'ambiente, dal più vecchio. La protezione dalla forza bruta blocca un percorso di accesso di un utente (per esempio password o totp) dopo troppi tentativi falliti; gli altri percorsi dell'utente restano aperti. Un blocco scaduto non viene elencato, perché non blocca più il percorso. L'elenco procede solo in avanti e non restituisce un conteggio totale. La risposta non contiene indirizzi IP né la chiave del contatore dei tentativi falliti.

Richiesta

Parametro In Obbligatorio Descrizione
limit query no Elementi per pagina, da 1 a 100 (predefinito 20).
after query no Cursore da list_metadata.after della pagina precedente.

before e order=desc non sono supportati e restituiscono 422.

Risposta

200 OK.

{
  "data": [
    {
      "id": "lck_01jaz8m5c3f6t9w2y4b7d0g3k6",
      "user_id": "usr_0a1b2c3d4e5f6g7h8j9k0m1n2p",
      "path": "password",
      "locked_at": "2026-10-20T09:00:00Z",
      "expires_at": "2026-10-20T09:15:00Z",
      "failure_count": 20
    }
  ],
  "list_metadata": {"before": null, "after": null}
}
Campo Descrizione
id ID del blocco, con prefisso lck_. L'evento user.unlocked riporta lo stesso ID.
user_id L'utente bloccato.
path Il percorso di accesso bloccato: password, totp, sms_2fa, email_2fa, otp o recovery_code.
locked_at, expires_at Quando il blocco è iniziato e quando si rimuove da solo.
failure_count Tentativi falliti nella finestra che ha causato il blocco.

Errori

Ogni errore è un body application/problem+json con un code stabile.

HTTP code Quando
400 invalid_cursor Il cursore è malformato o appartiene a un altro elenco.
422 validation_failed limit è fuori intervallo, oppure è stato inviato before o un order discendente.
401 unauthenticated La chiave API manca, non è valida o è stata revocata.
403 insufficient_permissions La chiave non ha il permesso attack-protection:read.
429 rate_limited È stato superato il limite di frequenza; attendi il periodo indicato in Retry-After.
503 service_unavailable Una dipendenza non è disponibile temporaneamente; riprova più tardi.

Esempio

curl https://api.eu.keenauth.com/v1/attack-protection/lockouts?limit=50 \
  -H "Authorization: Bearer $KEENAUTH_SECRET_KEY"

CLI: keenauth attack-protection lockouts list --limit 50