Obtener la configuración de protección frente a ataques

GET /v1/attack-protection · permiso attack-protection:read

Devuelve el objeto de protección frente a ataques del entorno: fuerza bruta, limitación de IP sospechosas, relleno de credenciales, protección frente a bots, contraseña filtrada, protección en el registro, protección SMS y política de riesgo. Cada sección tiene dos vistas: configured es el valor que usted escribió y effective es el valor vigente, con los valores predeterminados, el mínimo de seguridad y su plan aplicados. Una sección que nunca escribió tiene configured: {}. El encabezado de respuesta ETag identifica el contenido del objeto; envíelo como If-Match en PUT y PATCH.

Solicitud

Esta operación no tiene campos de ruta, de consulta ni de cuerpo. El entorno se obtiene de la credencial.

Respuesta

200 OK con el objeto y el encabezado ETag.

{
  "schema_version": 1,
  "brute_force": {
    "configured": {"max_failures": 10},
    "effective": {"mode": "enforce", "max_failures": 10, "window_minutes": 15, "lock_minutes": 15, "notify_user": true}
  },
  "risk_policy": {
    "configured": {"mode": "enforce"},
    "effective": {"mode": "log", "challenge_threshold": 4, "block_threshold": null, "notify_user_on_new_device": true}
  },
  "bot_protection": {
    "configured": {},
    "effective": {"mode": "risk_based", "provider": "altcha"}
  }
}

El ejemplo está abreviado: cada respuesta incluye las ocho secciones (brute_force, suspicious_ip_throttling, credential_stuffing, bot_protection, breached_password, signup_protection, sms_protection, risk_policy). En el ejemplo, el plan ya no incluye la aplicación de riesgo, así que el enforce configurado se conserva pero aparece como log.

Campos

Campo Tipo Rango o valores Predeterminado Mínimo
brute_force.mode texto log, enforce enforce
brute_force.max_failures entero 5-100 20 como máximo 100
brute_force.window_minutes entero 5-60 15
brute_force.lock_minutes entero 5-60 15 al menos 5
brute_force.notify_user booleano true
suspicious_ip_throttling.mode texto log, enforce enforce
suspicious_ip_throttling.login_failures_per_ip_per_day entero 10-10000 100
suspicious_ip_throttling.signups_per_ip_per_hour entero 1-20 20 como máximo 20
suspicious_ip_throttling.allowlist array de texto hasta 100 prefijos CIDR; IPv4 no más amplio que /8, IPv6 no más amplio que /32 []
credential_stuffing.mode texto log, enforce enforce
credential_stuffing.attack_mode_auto booleano true
credential_stuffing.attack_mode_duration_minutes entero 15-240 30
bot_protection.mode texto off, risk_based, always risk_based
bot_protection.provider texto altcha altcha
breached_password.on_signup texto block block block
breached_password.on_password_change texto block block block
breached_password.on_login texto require_reset, notify require_reset
breached_password.notify_user booleano true
signup_protection.block_disposable_email booleano true
signup_protection.block_email_subaddress booleano false
signup_protection.max_signups_per_device_30d entero 1-50 3
sms_protection.allowed_countries array de texto hasta 250 códigos ISO 3166-1 alpha-2 [] (predeterminado del plan)
sms_protection.daily_cap entero | null 1-1000000; null es el valor del plan null
sms_protection.conversion_breaker booleano true true
risk_policy.mode texto log, enforce (enforce requiere el plan Startup o superior) log
risk_policy.challenge_threshold entero 3-8 4
risk_policy.block_threshold entero | null 6-12, mayor que challenge_threshold; null está desactivado null
risk_policy.notify_user_on_new_device booleano true

Errores

HTTP código Cuándo
401 unauthenticated La credencial falta, no es válida o fue revocada.
403 insufficient_permissions La credencial no tiene el permiso requerido.
429 rate_limited Se superó el límite de frecuencia; reintente después del periodo indicado en Retry-After.
503 service_unavailable Una dependencia no está disponible temporalmente; reintente después del periodo indicado en Retry-After.

Ejemplo

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