Eine Organisationsrichtlinie in der Vorschau anzeigen
POST /v1/organizations/{org_id}/policies/{policy_kind}:preview · Berechtigung organizations:write
Bewertet ein Kandidatenobjekt für die Einstellungen, ohne es zu speichern. Der Anfragetext entspricht dem von Erstellen oder Ersetzen einer Richtlinie, und der Server prüft ihn mit denselben Regeln und derselben Tarifprüfung. Ein Kandidat, den PUT ablehnen würde, wird hier daher mit demselben Problemcode abgelehnt. Es wird nichts geschrieben: keine Richtlinie, kein Audit-Eintrag und kein Ereignis. Die Anfrage nimmt weder If-Match noch Idempotency-Key entgegen, und die Antwort enthält kein ETag.
Die Antwort zählt die Benutzer, auf die der Kandidat angewendet wird (basis users_in_scope), nicht die Benutzer, die blockiert würden. Eine Ausnahme bildet phishing_resistant (siehe unten). Bedingungen, die nur bei der Anmeldung bekannt sind oder die der Richtliniendienst nicht kennt, werden nicht herausgefiltert. not_evaluated listet sie auf, damit die Zahl nie als mehr gelesen wird, als sie ist.
| Art | Gezählte Benutzer | not_evaluated |
|---|---|---|
authentication_methods |
Aktive Mitglieder der Organisation | credentials |
mfa (required_for admins oder all) |
Aktive Mitglieder der Organisation | mfa_enrollment; außerdem admin_scope für admins |
phishing_resistant (required_for admins oder all) |
Aktive Mitglieder der Organisation ohne akzeptierte WebAuthn-Anmeldedaten (basis users_without_webauthn, siehe unten) |
credential_policy; außerdem admin_scope für admins |
sso_enforcement org_context |
Aktive Mitglieder der Organisation, abzüglich bypass_user_ids |
federated_sign_in |
sso_enforcement verified_domains |
Aktive Mitglieder plus aktive Benutzer der Umgebung mit einer E-Mail-Adresse auf einer verifizierten Domain dieser Organisation, abzüglich bypass_user_ids |
federated_sign_in |
session |
Aktive Mitglieder der Organisation | keine |
ip_allowlist |
Aktive Mitglieder der Organisation | client_ip; außerdem admin_scope für admins |
Bei phishing_resistant sind Anzahl und Stichprobe die Benutzer im Geltungsbereich, die sich heute nicht phishing-resistent anmelden können: Benutzer ohne aktive WebAuthn-Anmeldedaten (ein Passkey oder ein Sicherheitsschlüssel mit einem ersten Faktor), die die AAGUID-Allowlist akzeptiert. Die Allowlist ist die des Kandidaten, oder die der Umgebung, wenn die des Kandidaten leer ist. Bei einer Allowlist zählen Anmeldedaten nur, wenn ihr Modell aufgeführt ist und ihre Attestierung verifiziert wurde. Ausstehende, widerrufene und als Klon verdächtigte Anmeldedaten zählen nicht. credential_policy bedeutet, dass die Attestierungsanforderung der Umgebung, die Regel für gerätegebundene Passkeys und der Modellstatus des Authenticators nicht angewendet werden. Die Zahl kann daher niedriger ausfallen als die Anzahl der Benutzer, die blockiert würden. Umfasst der Geltungsbereich mehr als 10.000 Benutzer, fällt die Antwort auf users_in_scope mit passkey_enrollment zurück. Können die Daten der Anmeldedaten nicht gelesen werden, schlägt die Anfrage mit 503 fehl, und es wird keine Zahl zurückgegeben.
required_for none und mode off zählen niemanden. Ein aktives Mitglied ist ein Mitglied, dessen Mitgliedschaft aktiv ist und dessen Benutzer nicht gesperrt ist. Jeder Benutzer wird einmal gezählt. admin_scope bedeutet, dass admins als alle Mitglieder gezählt wird, so wie die Anmeldung es heute anwendet. Die Benutzer einer anderen Organisation oder einer anderen Umgebung werden nie gezählt.
Anfrage
| Feld | Typ | Pflicht | Beschreibung |
|---|---|---|---|
org_id |
Pfad | ja | Organisations-ID (org_…). |
policy_kind |
Pfad | ja | Richtlinienart: authentication_methods, mfa, phishing_resistant, sso_enforcement, session oder ip_allowlist. Jeder andere Wert liefert 404. |
settings |
Objekt | ja | Das Kandidatenobjekt der Einstellungen dieser Art, mit denselben Feldern wie bei PUT. |
Anfragetext:
{
"settings": {
"required_for": "all",
"allowed_factors": [
"totp",
"webauthn"
],
"enrollment_grace_days": 7
}
}
Antwort
200 OK. sample enthält höchstens 20 Benutzer der gezählten Menge, sortiert nach ID, nur mit der Benutzer-ID.
| Feld | Typ | Beschreibung |
|---|---|---|
organization_id |
string | Organisations-ID (org_…). |
policy_kind |
string | Die angezeigte Art. |
basis |
string | Was affected_count zählt: users_in_scope oder, für phishing_resistant, users_without_webauthn. Es können neue Werte hinzukommen. |
affected_count |
integer | Anzahl der Benutzer, die basis zählt. |
sample |
array | Höchstens 20 Objekte mit user_id (usr_…). |
not_evaluated |
array | Bedingungen, die die Zählung nicht filtert: admin_scope, credentials, mfa_enrollment, passkey_enrollment, federated_sign_in, client_ip, credential_policy. Es können neue Werte hinzukommen. |
{
"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"
]
}
Fehler
| HTTP | Code | Wann |
|---|---|---|
| 400 | unknown_field |
Der Anfragetext enthält ein Feld, das nicht im Schema steht. |
| 403 | plan_feature_unavailable |
Die Art oder die AAGUID-Allowlist erfordert einen höheren Tarif; das Problem enthält feature und required_plan. |
| 404 | not_found |
Die Organisation existiert nicht oder die Art ist unbekannt. |
| 409 | domain_not_verified |
sso_enforcement mit mode verified_domains erfordert eine verifizierte Domain für die Organisation. |
| 409 | connection_test_required |
Das Einschalten von sso_enforcement (von off oder ohne Richtlinie) erfordert eine erfolgreiche Test-Anmeldung der aktuellen Konfiguration bei mindestens einem der connection_ids in den letzten 24 Stunden. Führen Sie einen Verbindungstest (POST /v1/connections/{connection_id}:test) aus und versuchen Sie es erneut. |
| 409 | organization_pending_deletion |
Die Organisation wartet auf die selbstständige Löschung. |
| 422 | validation_failed |
Ein Einstellungsfeld ist unbekannt oder ungültig; errors[] verweist auf /settings/…. |
| 422 | policy_weaker_than_parent |
Die Einstellung ist schwächer als die Einstellung der Umgebung; errors[] verweist auf das schwächere Feld. |
| 422 | at_least_one_method |
authentication_methods lässt keine Anmeldemethode übrig. |
| 401 | unauthenticated |
Die Anmeldedaten fehlen, sind ungültig oder widerrufen. |
| 403 | insufficient_permissions |
Die Anmeldedaten haben nicht die erforderliche Berechtigung. |
| 429 | rate_limited |
Das Ratenlimit wurde überschritten; wiederholen Sie die Anfrage nach Ablauf des Zeitraums Retry-After. |
| 503 | service_unavailable |
Eine Abhängigkeit ist vorübergehend nicht verfügbar (bei phishing_resistant auch, wenn die Daten der Anmeldedaten nicht gelesen werden können); wiederholen Sie die Anfrage nach Ablauf des Zeitraums Retry-After. |
Beispiel
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"]}}'