Mettre à jour les paramètres de protection contre les attaques
PATCH /v1/attack-protection · permission attack-protection:write
Met à jour l'objet de protection contre les attaques avec un patch de fusion JSON (application/merge-patch+json, RFC 7396). If-Match est obligatoire : absent, 428 ; ETag périmé, 412. Un patch qui ne change rien n'écrit rien et conserve l'ETag.
Requête
| Champ | Type | Obligatoire | Description |
|---|---|---|---|
If-Match |
en-tête | oui | L'ETag de l'objet tel que lu en dernier. Absent : 428 ; périmé : 412. |
| corps | objet | oui | Le patch de fusion. Les champs sont listés dans Remplacer l'ensemble des paramètres de protection contre les attaques. |
Comportement
- Les sections fusionnent récursivement : envoyez seulement les champs que vous modifiez.
nullsupprime un champ ou une section entière, ce qui le ramène à sa valeur par défaut. Les listes commeallowlistetallowed_countriessont remplacées entièrement.- L'objet fusionné est contrôlé exactement comme un corps de
PUT.
Réponse
200 OK avec l'objet, comme dans Obtenir les paramètres de protection contre les attaques, et le nouvel ETag.
Erreurs
| HTTP | code | Quand |
|---|---|---|
| 400 | unknown_field |
Une section ou un champ ne fait pas partie de l'objet. errors[] liste les pointeurs. |
| 400 | malformed_request |
Le corps n'est pas un JSON valide, ou l'en-tête If-Match est mal formé. |
| 401 | unauthenticated |
L'identifiant est absent, invalide ou révoqué. |
| 403 | insufficient_permissions |
L'identifiant n'a pas attack-protection:write. |
| 403 | plan_feature_unavailable |
risk_policy.mode vaut enforce et le plan ne l'inclut pas ; le corps contient feature et required_plan. |
| 412 | precondition_failed |
L'objet a changé depuis votre lecture. Relisez-le et réessayez. |
| 413 | payload_too_large |
L'objet dépasse 32 KiB. |
| 422 | validation_failed |
Une valeur a le mauvais type ou est hors plage, ou block_threshold n'est pas supérieur à challenge_threshold. errors[] liste les pointeurs. |
| 422 | below_security_floor |
Une valeur est sous le plancher de sécurité. Chaque entrée de errors[] nomme le champ et son plancher dans detail. |
| 422 | allowlist_range_too_broad |
Un préfixe de liste d'autorisation est plus large que /8 (IPv4) ou /32 (IPv6). |
| 428 | precondition_required |
If-Match est absent. |
| 429 | rate_limited |
La limite de débit est dépassée ; réessayez après la durée Retry-After. |
| 503 | service_unavailable |
Une dépendance est temporairement indisponible ; réessayez après la durée Retry-After. |
Si plusieurs types d'erreur sont présents, seul le plus grave est renvoyé, dans cet ordre : unknown_field, validation_failed, below_security_floor, allowlist_range_too_broad, plan_feature_unavailable. Les valeurs écrites ne sont jamais renvoyées dans la réponse.
Exemple
curl -X PATCH https://api.eu.keenauth.com/v1/attack-protection \
-H "Authorization: Bearer $KEENAUTH_SECRET_KEY" \
-H "Content-Type: application/merge-patch+json" \
-H 'If-Match: "3f1c9a0b5d7e2a4c6b8d0e1f2a3b4c5d"' \
-d '{"risk_policy": {"block_threshold": 9}, "sms_protection": null}'