İ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}'