Modifier un client de gestion
PATCH /v1/management-clients/{application_id} · autorisation management-clients:write
Modifie un enregistrement de client de gestion avec un JSON merge patch (RFC 7396, application/merge-patch+json) : les champs que vous envoyez changent, les autres restent identiques. If-Match est obligatoire : sans lui, la requête échoue avec 428 ; avec une version qui ne correspond plus, elle échoue avec 412. Seule une clé d'API peut appeler ce point de terminaison.
Requête
| Paramètre | Emplacement | Description |
|---|---|---|
application_id |
chemin | Identifiant de l'application (app_…). |
If-Match |
en-tête | Le ETag de la dernière lecture ou écriture. |
Corps : l'un quelconque des champs ci-dessous.
| Champ | Type | Obligatoire | Description |
|---|---|---|---|
permissions |
chaîne[] | non | 1 à 200 autorisations <resource>:<action> connues. Remplace la liste dans son ensemble ; ne peut pas être null. |
allowed_cidrs |
chaîne[] | null | non | Jusqu'à 20 blocs CIDR. Remplace la liste dans son ensemble ; null ou [] utilise la liste propre à la clé appelante. |
Un patch qui ne modifie rien laisse l'enregistrement, sa version et le journal d'audit inchangés. Une clé restreinte ne peut pas modifier un enregistrement plus large qu'elle-même (403 permission_escalation).
Réponse
200 OK, avec le nouvel ETag.
{
"application_id": "app_01h455vb4pex5vsknk084sn02q",
"permissions": ["users:read"],
"allowed_cidrs": ["203.0.113.0/24"]
}
Erreurs
| HTTP | code | Quand |
|---|---|---|
| 400 | unknown_field |
Le patch contient un champ autre que permissions et allowed_cidrs. |
| 403 | permission_escalation |
L'enregistrement, ou l'enregistrement après patch, est plus large que la clé appelante. |
| 404 | not_found |
L'application n'a pas d'enregistrement dans cet environnement. |
| 412 | precondition_failed |
If-Match ne correspond pas à la version actuelle. |
| 415 | unsupported_media_type |
Le type de contenu n'est pas application/merge-patch+json. |
| 422 | validation_failed |
permissions est null, vide ou contient une autorisation inconnue, ou un CIDR est invalide. |
| 428 | precondition_required |
If-Match est absent. |
Exemple
curl -X PATCH https://api.eu.keenauth.com/v1/management-clients/app_01h455vb4pex5vsknk084sn02q \
-H "Authorization: Bearer $KEENAUTH_SECRET_KEY" \
-H "Content-Type: application/merge-patch+json" \
-H 'If-Match: "3f2a9c0d7b1e4a6f8c5d2e1b0a9f8e7d"' \
-d '{"permissions":["users:read"]}'
CLI : keenauth management-clients update app_01h455vb4pex5vsknk084sn02q --permissions users:read --if-match '"3f2a9c0d7b1e4a6f8c5d2e1b0a9f8e7d"'