Diagnose eines Mitglieds abrufen
GET /v1/organizations/{org_id}/memberships/{membership_id}/diagnostics · Berechtigungen organizations:read und users:read
Beantwortet für einen Organisationsadministrator in einer einzigen Antwort die Frage "Warum kann sich dieses Mitglied nicht anmelden?": die Mitgliedschaft, eine Zusammenfassung der Richtlinien der Organisation, eine ausstehende Einladung, eine Zusammenfassung der Authentifikatoren des Mitglieds, den Anmeldestatus im Kontext der Organisation, die Verzeichnisgruppen des Mitglieds und den Zugriff des Mitglieds auf Anwendungen. Die Antwort ist rein lesend: Es wird nichts verändert, Schreibaktionen erfolgen über eigene Endpunkte. Anmeldeaktivität wird mit Logs eines Benutzers auflisten und org_id gelesen.
Es werden nur Daten zurückgegeben, die zur Organisation gehören. Bezeichnungen, AAGUIDs, IP-Adressen, User-Agents, E-Mail-Adressen, CIDR-Bereiche und Datensätze aus dem Kontext einer anderen Organisation sind niemals Teil der Antwort.
Anfrage
| Feld | Typ | Pflicht | Beschreibung |
|---|---|---|---|
org_id |
Pfad | ja | Organisations-ID (org_…). |
membership_id |
Pfad | ja | Mitgliedschafts-ID (mem_…). |
Kein Request-Body.
Antwort
200 OK mit diesen Feldern:
| Feld | Beschreibung |
|---|---|
membership |
Die Mitgliedschaft, wie Eine Mitgliedschaft abrufen sie zurückgibt: Status, Quelle, Rollen und Grund der Sperrung. |
policy |
Die für die Organisation festgelegten Richtlinien: authentication_methods (Passkey und Passwort erlaubt, Anzahl erlaubter Verbindungen), mfa (wer MFA verwenden muss und die erlaubten Faktoren), phishing_resistant, sso_enforcement (Modus und bypass, wenn das Mitglied auf der Notfallzugang-Liste steht) und ip_allowlist (vorhanden und für wen es gilt). null bedeutet, dass die Organisation den Umgebungswert für diese Richtlinie übernimmt. |
invitation |
Nur bei einer invited-Mitgliedschaft: die ausstehende Einladung an die primäre E-Mail-Adresse des Benutzers mit Zustellung und Zustellstatus. Andernfalls null. Die E-Mail-Adresse wird nicht zurückgegeben. |
authenticators |
classes: die Typen der aktiven Authentifikatoren des Mitglieds. mfa_enrolled: true, wenn ein aktiver Authentifikator die Rolle second_factor oder both hat. |
sign_in |
locked und locked_until (eine Sperre stoppt die Anmeldung des Kontos in jedem Kontext), sowie die letzte Anmeldung im Kontext dieser Organisation (last_sign_in_at, last_sign_in_amr). Fehlerzähler werden nicht angezeigt, da sie zu keiner Organisation gehören. |
groups |
Die Gruppen des Mitglieds in den Verzeichnissen der Organisation (data: id dsg_… und directory_id dir_…; höchstens 100, truncated, wenn es mehr gibt). Nur Mitgliedschaften eines Verzeichnisbenutzers, der mit diesem Benutzer verknüpft und aktiv ist, zählen. Gruppennamen werden nicht zurückgegeben; sie können mit GET /v1/directories/{directory_id}/groups/{directory_group_id} gelesen werden. |
applications |
Zugriff auf Anwendungen in dieser Organisation. Anwendungen, deren org_access_mode all_organizations ist, stehen jedem Mitglied offen und werden nur gezählt (open_count). Für die übrigen Anwendungen (data, nach Name, höchstens 100, truncated, wenn es mehr gibt): application_id, name, access_mode, allowed und reason, wenn der Zugriff verweigert wird (application_not_enabled: die Anwendung ist für die Organisation nicht aktiviert; application_not_assigned: weder die Mitgliedschaft noch eine ihrer Verzeichnisgruppen ist zugewiesen). Die Entscheidung folgt derselben Regel wie die Prüfung bei der Anmeldung. |
{
"membership": {
"id": "mem_01j9xn5p9s0t4v6w8x0y2z4a6c",
"organization_id": "org_01j9xk3m7q8r2s4t6v8w0y2z4a",
"user_id": "usr_01j9xh2k6p7q1r3s5t7v9w1x3y",
"status": "suspended",
"source": "scim",
"reason": "scim_deprovisioned",
"roles": [],
"expires_at": null,
"created_at": "2026-10-12T09:31:00.123456Z",
"activated_at": "2026-10-12T09:31:00.123456Z",
"suspended_at": "2026-10-20T07:00:00Z",
"removed_at": null,
"updated_at": "2026-10-20T07:00:00Z",
"version": 3
},
"policy": {
"authentication_methods": null,
"mfa": { "required_for": "all", "allowed_factors": ["totp", "webauthn"] },
"phishing_resistant": null,
"sso_enforcement": { "mode": "org_context", "bypass": false },
"ip_allowlist": null
},
"invitation": null,
"authenticators": { "mfa_enrolled": false, "classes": ["webauthn"] },
"sign_in": {
"locked": false,
"locked_until": null,
"last_sign_in_at": "2026-10-19T08:15:42Z",
"last_sign_in_amr": ["fed"]
},
"groups": {
"data": [{ "id": "dsg_01j9xp4r8s2t4v6w8x0y2z4a6b", "directory_id": "dir_01j9xm1n5p7q9r1s3t5v7w9x1y" }],
"truncated": false
},
"applications": {
"open_count": 2,
"data": [
{
"application_id": "app_01j9xq6s0t2v4w6x8y0z2a4b6c",
"name": "Finance portal",
"access_mode": "assigned_only",
"allowed": false,
"reason": "application_not_assigned"
}
],
"truncated": false
}
}
Fehler
| HTTP | Code | Wann |
|---|---|---|
| 404 | not_found |
Die Mitgliedschaft existiert in dieser Organisation nicht oder ist removed. |
| 401 | unauthenticated |
Die Anmeldedaten fehlen, sind ungültig oder widerrufen. |
| 403 | insufficient_permissions |
Den Anmeldedaten fehlt organizations:read oder users:read. |
| 429 | rate_limited |
Das Ratenlimit wurde überschritten; nach Ablauf des Zeitraums Retry-After erneut versuchen. |
| 503 | service_unavailable |
Ein Dienst ist vorübergehend nicht verfügbar; nach Ablauf des Zeitraums Retry-After erneut versuchen. |
Beispiel
curl -i "https://api.eu.keenauth.com/v1/organizations/org_01j9xk3m7q8r2s4t6v8w0y2z4a/memberships/mem_01j9xn5p9s0t4v6w8x0y2z4a6c/diagnostics" \
-H "Authorization: Bearer $KEENAUTH_SECRET_KEY"
Personenbezogene Daten
Dieser Endpunkt verarbeitet personenbezogene Daten: Organisationsmitgliedschaften und Einladungen sowie Anmeldedaten. Personenbezogene Daten in den KeenAuth-APIs beschreibt, was gespeichert wird, wie lange es aufbewahrt wird und wie es gelöscht wird. Geben Sie in keinem Feld besondere Kategorien personenbezogener Daten (Gesundheit, biometrische Daten, Religion, politische Meinungen, sexuelle Orientierung) an.