İmza anahtarı politikasını güncelle
PATCH /v1/signing-keys/policy · izin signing-keys:write
İmza anahtarı politikasını JSON merge patch ile günceller (application/merge-patch+json, RFC 7396). If-Match zorunludur: yoksa 428, eski sürümse 412. Politika hiç yazılmadıysa sürüm "0"'dır. Hiçbir şeyi değiştirmeyen yama yazma yapmaz ve sürümü korur.
algorithm değişince yeni algoritmayla yeni bir next anahtar hemen üretilir; JWKS'i önbelleğe alan doğrulayıcılar onu önce görsün diye en erken 7 gün sonra etkinleşebilir (daha erken immediate rotasyon 409 next_key_too_young ile başarısız olur). O zamana dek etkin anahtar imzalamayı sürdürür. rotation_interval_days değişince next_rotation_at kayar. Başarılı değişiklik signing_key.policy_updated yönetim audit kaydını yazar.
İstek
| Alan | Tür | Zorunlu | Açıklama |
|---|---|---|---|
If-Match |
header | evet | Politikanın son okunan ETag'i (hiç yazılmadıysa "0"). Yoksa 428; eskiyse 412. |
algorithm |
string | hayır | RS256, ES256, PS256 ya da EdDSA. null olamaz. |
rotation_interval_days |
integer | hayır | 30-365. null olamaz. |
storage |
string | hayır | wrapped (özel anahtar ortam anahtarıyla şifreli saklanır ve yalnız imza servisinin içinde kullanılır). transit (anahtar anahtar yönetim servisinde tutulur) henüz kullanılamaz ve 422 ile reddedilir. null olamaz. |
Yanıt
200 OK; güncellenmiş politika ve yeni ETag.
{
"algorithm": "ES256",
"rotation_interval_days": 90,
"storage": "wrapped",
"next_rotation_at": "2026-12-04T09:30:00.123456Z",
"updated_at": "2026-10-05T09:30:00.123456Z"
}
Hatalar
| HTTP | code | Ne zaman |
|---|---|---|
| 400 | unknown_field |
Yamada bilinmeyen ya da salt okunur alan var veya yama JSON nesnesi değil (malformed_request). |
| 412 | precondition_failed |
If-Match güncel sürümle eşleşmiyor. |
| 415 | unsupported_media_type |
İçerik türü application/merge-patch+json değil. |
| 422 | validation_failed |
Bir değer geçersiz (invalid_value), aralık dışında (out_of_range), null verilmiş (invalid) ya da storage transit. |
| 428 | precondition_required |
If-Match başlığı yok. |
| 401 | unauthenticated |
Kimlik bilgisi yok, geçersiz ya da iptal edilmiş. |
| 403 | insufficient_permissions |
Kimlik bilgisinde gerekli izin yok. |
| 429 | rate_limited |
Hız sınırı aşıldı; Retry-After süresinden sonra yeniden deneyin. |
| 501 | not_implemented |
İşlem bu dağıtımda henüz kullanılamıyor; yeniden denemek sonucu değiştirmez. |
| 503 | service_unavailable |
Bir bağımlılık geçici olarak kullanılamıyor; Retry-After süresinden sonra yeniden deneyin. |
Örnek
curl -X PATCH https://api.eu.keenauth.com/v1/signing-keys/policy \
-H "Authorization: Bearer $KEENAUTH_SECRET_KEY" \
-H "Content-Type: application/merge-patch+json" \
-H 'If-Match: "0"' \
-d '{"algorithm":"ES256","rotation_interval_days":90}'