Support-Zugriff gewähren
POST /v1/support-access-grants · Berechtigung support-access-grants:write
Gewährt dem KeenAuth-Support zeitlich begrenzten Zugriff auf diese Umgebung, zum Beispiel während er an einem Support-Ticket arbeitet. Der Zugriff ist entweder nur lesend (read) oder darf zusätzlich die Konfiguration ändern (read_write_config); Support-Mitarbeiter schreiben niemals Daten von Endnutzern. Jede Nutzung der Freigabe und jede Aktion eines Mitarbeiters wird im Verwaltungs-Audit-Log protokolliert, und ein Ereignis support_access_grant.created wird veröffentlicht. Freigaben können nur im Dashboard von einem owner oder admin erstellt werden, der sich in den letzten 5 Minuten erneut angemeldet hat; API-Schlüssel und Maschinenclients erhalten 403 insufficient_permissions.
Anfrage
| Feld | Typ | Erforderlich | Beschreibung |
|---|---|---|---|
Idempotency-Key |
header | nein | Optional. 16-64 Zeichen [A-Za-z0-9_-]; die Wiederholung desselben Schlüssels mit demselben Body liefert dieselbe Freigabe. |
scope |
string | ja | read (nur lesend) oder read_write_config (darf zusätzlich die Konfiguration ändern). |
duration_hours |
integer | ja | Dauer in Stunden, 1-72. |
ticket_ref |
string | ja | Referenz des Support-Tickets: 1-200 druckbare ASCII-Zeichen, ohne führendes oder nachgestelltes Leerzeichen. |
allowed_regions_of_staff |
array | null | nein | Nur Enterprise. Die Freigabe darf nur von Mitarbeitern in diesen Regionen (eu, us) genutzt werden; fehlt das Feld oder ist es null, gibt es keine Einschränkung. |
Anfrage-Body:
{
"scope": "read",
"duration_hours": 24,
"ticket_ref": "SUP-48213",
"allowed_regions_of_staff": ["eu"]
}
Antwort
201 Created mit der neuen Freigabe.
{
"id": "sag_01j9xk3m7q8r2s4t6v8w0y2z4a",
"scope": "read",
"status": "active",
"ticket_ref": "SUP-48213",
"allowed_regions_of_staff": ["eu"],
"granted_by": "du_01j9xk2p5n7q9s1t3v5w7y9z1b",
"created_at": "2026-10-12T09:30:00.123456Z",
"expires_at": "2026-10-13T09:30:00.123456Z",
"revoked_at": null
}
Fehler
| HTTP | Code | Wann |
|---|---|---|
| 400 | malformed_request |
Der Body ist kein gültiges JSON oder Idempotency-Key ist fehlerhaft. |
| 403 | insufficient_permissions |
Die Anfrage wurde nicht aus dem Dashboard von einem owner oder admin gestellt, oder der Anmeldeinformation fehlt die erforderliche Berechtigung. |
| 403 | plan_feature_unavailable |
allowed_regions_of_staff erfordert den Enterprise-Plan. |
| 422 | validation_failed |
Ein Feld ist ungültig (scope, duration_hours außerhalb von 1-72, ticket_ref, allowed_regions_of_staff). |
| 422 | idempotency_key_reuse |
Der Idempotency-Key wurde bereits mit einem anderen Body verwendet. |
| 401 | unauthenticated |
Die Anmeldeinformation fehlt, ist ungültig oder widerrufen. |
| 429 | rate_limited |
Das Ratenlimit wurde überschritten; nach Ablauf der Retry-After-Zeit erneut versuchen. |
| 503 | service_unavailable |
Eine Abhängigkeit ist vorübergehend nicht verfügbar; nach Ablauf der Retry-After-Zeit erneut versuchen. |
Beispiel
Erstellen und Widerrufen sind Aktionen im Dashboard. Die Anfrage, die das Dashboard sendet:
POST /v1/support-access-grants
Content-Type: application/json
Idempotency-Key: 2f1c9a7e-5b3d-4e8f-9a6c-1d2e3f4a5b6c
{
"scope": "read",
"duration_hours": 24,
"ticket_ref": "SUP-48213",
"allowed_regions_of_staff": ["eu"]
}