Kuruluş politikasını oluşturun veya değiştirin
PUT /v1/organizations/{org_id}/policies/{policy_kind} · izin organizations:write
Bir politika türünün tüm ayarlar nesnesini değiştirir. Kuruluş politikası, ortamın ayarından yalnızca daha sıkı olabilir. Plan kapısı sunucu tarafından uygulanır: session ve ip_allowlist türleri ile AAGUID izin listesi Enterprise planı gerektirir (geliştirme ortamlarında açıktır). Ayar içeriği yönetim denetim günlüğüne yazılır; organization.updated olayı bunu içermez.
İstek
| Alan | Tür | Zorunlu | Açıklama |
|---|---|---|---|
org_id |
yol | evet | Kuruluş kimliği (org_…). |
policy_kind |
yol | evet | Politika türü: authentication_methods, mfa, phishing_resistant, sso_enforcement, session veya ip_allowlist. Başka bir değer 404 döndürür. |
If-Match |
header | hayır | Politika mevcutsa zorunludur (son okumanın ETag değeri); politikayı oluşturmak için atlayın. *, mevcut bir politikayla eşleşir. |
settings |
nesne | evet | Türün ayarlar nesnesi. Türe göre alanlar: authentication_methods: allowed_connection_ids (conn_…), allow_passkey, allow_password; mfa: required_for (none, admins, all), allowed_factors (totp, webauthn, sms, email), enrollment_grace_days (0-30); phishing_resistant: required_for, aaguid_allowlist (en fazla 500); sso_enforcement: mode (off, org_context, verified_domains), connection_ids (conn_…), bypass_user_ids (usr_…, en fazla 2); session: idle_minutes, absolute_minutes, refresh_idle_days, refresh_absolute_days; ip_allowlist: cidrs (en fazla 100), applies_to (admins, all). |
İstek gövdesi:
{
"settings": {
"required_for": "all",
"allowed_factors": [
"totp",
"webauthn"
],
"enrollment_grace_days": 7
}
}
Yanıt
Politika oluşturulduğunda 201 Created, değiştirildiğinde 200 OK döner; gövde politikanın kendisidir ve yanıt yeni ETag değerini içerir.
{
"organization_id": "org_01j9xk3m7q8r2s4t6v8w0y2z4a",
"policy_kind": "mfa",
"schema_version": 1,
"settings": {
"required_for": "all",
"allowed_factors": [
"totp",
"webauthn"
],
"enrollment_grace_days": 7
},
"updated_at": "2026-10-12T09:30:00.123456Z",
"version": 1
}
Hatalar
| HTTP | code | Ne zaman |
|---|---|---|
| 400 | unknown_field |
Gövdede şemada bulunmayan veya salt okunur bir alan var. |
| 403 | plan_feature_unavailable |
Tür veya AAGUID izin listesi daha yüksek bir plan gerektiriyor; sorun feature ve required_plan içerir. |
| 404 | not_found |
Kuruluş yok veya tür bilinmiyor. |
| 409 | domain_not_verified |
mode verified_domains olan sso_enforcement, kuruluşta doğrulanmış bir alan adı gerektirir. |
| 409 | connection_test_required |
sso_enforcement açılırken (off durumundan veya hiç politika yokken), connection_ids içindeki en az birinin mevcut yapılandırmasıyla son 24 saat içinde başarılı bir test girişi gerekir. Bir bağlantı testi çalıştırın (POST /v1/connections/{connection_id}:test) ve yeniden deneyin. |
| 409 | organization_pending_deletion |
Kuruluş, self-servis silme işlemini bekliyor; önce silmeyi iptal edin. |
| 412 | precondition_failed |
If-Match, mevcut sürümle eşleşmiyor veya bu türde politika yokken gönderildi ya da bu istek oluşturulurken başka bir istek politikayı oluşturdu; politikayı yeniden okuyun. |
| 422 | validation_failed |
Bir ayar alanı bilinmiyor veya geçersiz; errors[], /settings/… yolunu gösterir. |
| 422 | policy_weaker_than_parent |
Ayar, ortamın ayarından daha zayıf; errors[] zayıf alanı gösterir. |
| 422 | at_least_one_method |
authentication_methods, hiçbir oturum açma yöntemi bırakmıyor. |
| 428 | precondition_required |
Politika mevcutken If-Match eksik. |
| 401 | unauthenticated |
Kimlik bilgisi eksik, geçersiz veya iptal edilmiş. |
| 403 | insufficient_permissions |
Kimlik bilgisi gerekli izne sahip değil. |
| 429 | rate_limited |
Hız sınırı aşıldı; Retry-After süresinden sonra yeniden deneyin. |
| 503 | service_unavailable |
Bir bağımlılık geçici olarak kullanılamıyor; Retry-After süresinden sonra yeniden deneyin. |
Örnek
curl -X PUT https://api.eu.keenauth.com/v1/organizations/org_01j9xk3m7q8r2s4t6v8w0y2z4a/policies/mfa \
-H "Authorization: Bearer $KEENAUTH_SECRET_KEY" \
-H "Content-Type: application/json" \
-d '{"settings":{"required_for":"all","allowed_factors":["totp","webauthn"]}}'