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"]}}'