Kuruluş politikasını önizleyin
POST /v1/organizations/{org_id}/policies/{policy_kind}:preview · İzin organizations:write
Aday bir ayarlar nesnesini kaydetmeden değerlendirir. Gövde, politika oluşturma veya değiştirme ile aynıdır; sunucu bunu aynı kurallarla ve aynı plan kapısıyla denetler. Bu nedenle PUT reddedecek bir aday, burada aynı sorun koduyla reddedilir. Hiçbir şey yazılmaz: politika, denetim kaydı ve olay oluşturulmaz. İstek If-Match ve Idempotency-Key almaz, yanıt ise ETag içermez.
Yanıt, engellenecek kullanıcıları değil, adayın uygulandığı kullanıcıları sayar (basis users_in_scope); bir istisna dışında: phishing_resistant (aşağıya bakın). Yalnızca oturum açma sırasında bilinen veya politika hizmetinin tutmadığı koşullar filtrelenmez; not_evaluated bunları listeler, böylece sayı olduğundan fazla gibi okunmaz.
| Tür | Sayılan kullanıcılar | not_evaluated |
|---|---|---|
authentication_methods |
Kuruluşun etkin üyeleri | credentials |
mfa (required_for admins veya all) |
Kuruluşun etkin üyeleri | mfa_enrollment; ayrıca admin_scope için admins |
phishing_resistant (required_for admins veya all) |
Kabul edilmiş bir WebAuthn kimlik bilgisi olmayan kuruluşun etkin üyeleri (basis users_without_webauthn, aşağıya bakın) |
credential_policy; ayrıca admin_scope için admins |
sso_enforcement org_context |
Kuruluşun etkin üyeleri, eksi bypass_user_ids |
federated_sign_in |
sso_enforcement verified_domains |
Etkin üyeler, artı bu kuruluşun doğrulanmış bir alan adındaki e-posta adresine sahip ortamın etkin kullanıcıları, eksi bypass_user_ids |
federated_sign_in |
session |
Kuruluşun etkin üyeleri | yok |
ip_allowlist |
Kuruluşun etkin üyeleri | client_ip; ayrıca admin_scope için admins |
phishing_resistant için sayı ve örnek, bugün phishing'e dayanıklı biçimde oturum açamayan kapsamdaki kullanıcılardır: AAGUID izin listesinin kabul ettiği, etkin bir WebAuthn kimlik bilgisi (bir passkey veya birinci faktörle kullanılan bir güvenlik anahtarı) olmayan kullanıcılar. İzin listesi adayınkidir; adayınki boşsa ortamınkidir. Bir izin listesi varsa, bir kimlik bilgisi yalnızca modeli listelenmişse ve onayı doğrulanmışsa sayılır. Beklemedeki, iptal edilmiş ve klonlanmış şüphesi olan kimlik bilgileri sayılmaz. credential_policy, ortamın onaylama gereksiniminin, cihaza bağlı passkey kuralının ve kimlik doğrulayıcı model durumunun uygulanmadığı anlamına gelir; bu nedenle sayı, engellenecek kullanıcı sayısından düşük olabilir. Kapsamda 10.000'den fazla kullanıcı olduğunda yanıt users_in_scope moduna geçer ve passkey_enrollment döner. Kimlik bilgisi verileri okunamazsa istek 503 ile başarısız olur ve sayı döndürülmez.
required_for none ve mode off hiçbir kullanıcıyı saymaz. Etkin üye, üyeliği etkin ve kullanıcısı engellenmemiş olan üyedir; her kullanıcı bir kez sayılır. admin_scope, admins değerinin tüm üyeler olarak sayıldığı anlamına gelir; oturum açma bugün bunu böyle uygular. Başka bir kuruluşun veya başka bir ortamın kullanıcıları hiçbir zaman sayılmaz.
İ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. |
settings |
nesne | evet | Türün aday ayarlar nesnesi; PUT ile aynı alanlara sahiptir. |
İstek gövdesi:
{
"settings": {
"required_for": "all",
"allowed_factors": [
"totp",
"webauthn"
],
"enrollment_grace_days": 7
}
}
Yanıt
200 OK. sample, sayılan kümedeki en fazla 20 kullanıcıyı, yalnızca kullanıcı kimliğiyle ve kimliğe göre sıralı olarak içerir.
| Alan | Tür | Açıklama |
|---|---|---|
organization_id |
string | Kuruluş kimliği (org_…). |
policy_kind |
string | Önizlenen tür. |
basis |
string | affected_count neyi sayar: users_in_scope veya phishing_resistant için users_without_webauthn. Yeni değerler eklenebilir. |
affected_count |
integer | basis tarafından sayılan kullanıcı sayısı. |
sample |
array | user_id alanlı en fazla 20 nesne (usr_…). |
not_evaluated |
array | Sayının filtrelemediği koşullar: admin_scope, credentials, mfa_enrollment, passkey_enrollment, federated_sign_in, client_ip, credential_policy. Yeni değerler eklenebilir. |
{
"organization_id": "org_01j9xk3m7q8r2s4t6v8w0y2z4a",
"policy_kind": "mfa",
"basis": "users_in_scope",
"affected_count": 2,
"sample": [
{
"user_id": "usr_01j9xk3m7q8r2s4t6v8w0y2z4b"
},
{
"user_id": "usr_01j9xk3m7q8r2s4t6v8w0y2z4c"
}
],
"not_evaluated": [
"mfa_enrollment"
]
}
Hatalar
| HTTP | code | Ne zaman |
|---|---|---|
| 400 | unknown_field |
Gövdede şemada olmayan bir alan var. |
| 403 | plan_feature_unavailable |
Tür veya AAGUID izin listesi daha yüksek bir plan gerektirir; sorun feature ve required_plan bilgilerini içerir. |
| 404 | not_found |
Kuruluş yok veya tür bilinmiyor. |
| 409 | domain_not_verified |
sso_enforcement ile mode verified_domains kuruluşta doğrulanmış bir alan adı gerektirir. |
| 409 | connection_test_required |
sso_enforcement etkinleştirmek (off veya hiç politika olmadan), connection_ids arasından en az birinin son 24 saat içindeki geçerli yapılandırmasıyla başarılı bir test oturum açması gerektirir. Bir bağlantı testi (POST /v1/connections/{connection_id}:test) çalıştırın ve yeniden deneyin. |
| 409 | organization_pending_deletion |
Kuruluş, self-servis silme işlemini bekliyor. |
| 422 | validation_failed |
Bir ayar alanı bilinmiyor veya geçersiz; errors[], /settings/… öğesini 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. |
| 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 (phishing_resistant için, kimlik bilgisi verileri okunamadığında da); Retry-After süresinden sonra yeniden deneyin. |
Örnek
curl -X POST https://api.eu.keenauth.com/v1/organizations/org_01j9xk3m7q8r2s4t6v8w0y2z4a/policies/mfa:preview \
-H "Authorization: Bearer $KEENAUTH_SECRET_KEY" \
-H "Content-Type: application/json" \
-d '{"settings":{"required_for":"all","allowed_factors":["totp","webauthn"]}}'
keenauth organizations policies preview org_01j9xk3m7q8r2s4t6v8w0y2z4a mfa \
--data '{"settings":{"required_for":"all","allowed_factors":["totp","webauthn"]}}'