Ottieni lo stato della modalità attacco

GET /v1/attack-protection/attack-mode · autorizzazione attack-protection:read

Restituisce se l'ambiente è in modalità attacco e i periodi di modalità attacco iniziati negli ultimi 90 giorni o ancora aperti, dal più recente al più vecchio (al massimo 100; more indica che esistono periodi più vecchi in quella finestra).

Mentre l'ambiente è in modalità attacco, ogni passaggio con password e codice monouso richiede una sfida bot più severa, indipendentemente da ciò che dice bot_protection.mode. Passkey e accesso con social non vengono sottoposti a sfida. Un periodo si apre in uno di tre modi:

active è true solo mentre un periodo applicato (would_have: false) copre l'intero ambiente; in quel caso active_until è la fine più tardiva di quei periodi. Un periodo la cui fine è già passata ma che la pulizia non ha ancora chiuso risulta concluso a ends_at. Chi ha aperto un periodo manuale è nel log di audit di gestione, non in questa risposta.

Risposta

200 OK

Campo Tipo Descrizione
active boolean L'ambiente è in modalità attacco adesso.
active_until string (date-time) o null Quando termina la modalità attacco corrente, a meno che un periodo automatico non venga esteso; null quando active è false.
periods[] array Periodi, dal più recente al più vecchio.
periods[].id string Id del periodo, con prefisso atm_.
periods[].scope string environment oppure org_domain.
periods[].org_domain string o null Il dominio email dell'organizzazione di un periodo org_domain.
periods[].trigger string auto, manual_customer oppure manual_platform.
periods[].would_have boolean true: registrato in modalità log, non applicato.
periods[].trigger_value integer o null Tentativi falliti nella finestra di 5 minuti che hanno aperto un periodo auto; null per i periodi manuali.
periods[].threshold integer o null La soglia superata da quella finestra; null per i periodi manuali.
periods[].started_at string (date-time) Quando è iniziato il periodo.
periods[].ends_at string (date-time) Quando il periodo termina da solo. Un periodo auto viene esteso finché l'attacco continua.
periods[].ended_at string (date-time) o null Quando il periodo è terminato; null finché è aperto.
more boolean Esistono periodi più vecchi negli ultimi 90 giorni.
{
  "active": true,
  "active_until": "2026-10-20T10:00:00Z",
  "periods": [
    {
      "id": "atm_01jaz8m5c3f6t9w2y4b7d0g3k6",
      "scope": "environment",
      "org_domain": null,
      "trigger": "manual_customer",
      "would_have": false,
      "trigger_value": null,
      "threshold": null,
      "started_at": "2026-10-20T09:00:00Z",
      "ends_at": "2026-10-20T10:00:00Z",
      "ended_at": null
    }
  ],
  "more": false
}

Errori

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

HTTP code Quando
401 unauthenticated La chiave API manca, non è valida o è stata revocata.
403 insufficient_permissions La chiave non ha l'autorizzazione attack-protection:read.
429 rate_limited È stato superato il limite di richieste; rispetta Retry-After.
503 service_unavailable Una dipendenza non è disponibile temporaneamente; riprova più tardi.

Esempio

curl https://api.eu.keenauth.com/v1/attack-protection/attack-mode \
  -H "Authorization: Bearer $KEENAUTH_SECRET_KEY"

CLI: keenauth attack-protection attack-mode get