Yönetim istemcisi oluştur

POST /v1/management-clients · izin management-clients:write

management türündeki bir uygulamanın yönetim istemcisi kaydını oluşturur: istemcinin kullanabileceği yönetim API izinleri ve çağrı yapabileceği ağlar. Kaydın kimliği uygulamanın kimliğidir; bir uygulamanın en çok bir kaydı olur. Bu ucu yalnız API anahtarı çağırabilir.

İstemci private_key_jwt (RFC 7523) ile kimlik doğrular. Ortak anahtarları bu kaynakta yoktur: onları POST /v1/applications/{application_id}/credentials (type: public_key) ile kaydedin. Burada jwks_uri ya da public_keys göndermek bilinmeyen alan olarak reddedilir.

İstemci erişim token'ını ortamının /oauth2/token ucundan alır (client_credentials, audience = yönetim API'sinin tanımlayıcısı) ve Authorization: Bearer olarak gönderir. Token en çok 10 dakika geçerlidir. Yönetim API'sindeki izinleri, token'ın scope değerlerinden bu kayıtta da yazılı olanlardır; allowed_cidrs dışından gelen çağrı 403 ip_not_allowed alır. Kayıt ya da uygulama silinirse ya da uygulama askıya alınırsa token 401 ile reddedilir. Yalnız JWT erişim token'ları kabul edilir.

İstek

Alan Tür Zorunlu Açıklama
application_id string evet Bu ortamdaki management türünde bir uygulama (app_…).
permissions string[] evet 1-200 bilinen <kaynak>:<eylem> yönetim API izni, örneğin users:read. Tekrarlar atılır, liste sıralanır.
allowed_cidrs string[] hayır En çok 20 CIDR bloğu, örneğin 203.0.113.0/24. Konak bitleri temizlenir. Verilmezse çağıran anahtarın kendi listesi kullanılır.

Kısıtlı anahtar yalnız kendi taşıdığı izinleri, IP izin listesi olan anahtar yalnız kendi ağlarının içindeki ağları verebilir; aksi 403 permission_escalation.

Yanıt

201 Created; kaydı güncellemek ya da silmek için If-Match olarak göndereceğiniz ETag başlığıyla.

{
  "application_id": "app_01h455vb4pex5vsknk084sn02q",
  "permissions": ["users:read", "users:write"],
  "allowed_cidrs": ["203.0.113.0/24"]
}

Her yazma yönetim audit kaydına hedefle (management_client ve uygulama kimliği) girer; izin değerleri ve ağlar kayda yazılmaz.

Hatalar

HTTP code Ne zaman
400 unknown_field Gövdede yukarıda olmayan bir alan var, örneğin jwks_uri ya da public_keys.
403 insufficient_permissions Kimlik bilgisinde management-clients:write yok ya da kimlik bilgisi API anahtarı değil.
403 permission_escalation Çağıran anahtar bu izinleri ya da ağları veremez.
404 not_found Bu ortamda böyle bir uygulama yok.
409 conflict Uygulamanın zaten bir yönetim istemcisi kaydı var.
422 validation_failed Bir alan eksik ya da geçersiz: bilinmeyen izin, geçersiz CIDR, bozuk application_id ya da türü management olmayan uygulama (işaretçi /application_id).

Örnek

curl -X POST https://api.eu.keenauth.com/v1/management-clients \
  -H "Authorization: Bearer $KEENAUTH_SECRET_KEY" \
  -H "Content-Type: application/json" \
  -d '{"application_id":"app_01h455vb4pex5vsknk084sn02q","permissions":["users:read","users:write"],"allowed_cidrs":["203.0.113.0/24"]}'

CLI: keenauth management-clients create --application-id app_01h455vb4pex5vsknk084sn02q --permissions users:read,users:write --allowed-cidrs 203.0.113.0/24