Benutzeridentitätsbetrug
Handeln Sie im Namen eines Benutzers für Support und Fehlerbehebung, ohne nach seinem Passwort zu fragen. Auf 10 Minuten begrenzt, streng in Sicherheitsprotokollen geprüft.
Was ist Identitätswechsel?
Der Benutzeridentitätswechsel ermöglicht es einem Administrator oder Supporttechniker, ein kurzlebiges Inhabertoken zu generieren, das als bestimmter Benutzer fungiert. Dadurch ist es möglich, Kundenfehler zu reproduzieren, RLS-Richtlinienberechtigungen zu überprüfen oder Datenprobleme zu beheben, ohne Anmeldeinformationen anzufordern.
Der Identitätswechsel in Aurabase garantiert drei grundlegende Sicherheitsprinzipien:
- Kurze Lebensdauer: Identitätswechsel-Tokens sind zwischen 1 und 600 Sekunden gültig (maximal 10 Minuten, Standard 300 Sekunden). Sie enthalten niemals ein Aktualisierungstoken.
- Explizite Akteurszuordnung: Das ausgestellte Zugriffstoken trägt den standardmäßigen RFC 8693-Anspruch
act, der angibt, wer die Sitzung initiiert hat. - Audit-before-issuance: Die Aktion wird in
auth_audit_logmit dem Akteur, dem Grund, der Dauer und dem Zielbenutzer aufgezeichnet, bevor das Token jemals generiert wird. Wenn das Einfügen des Protokolls fehlschlägt, wird kein Token ausgegeben.
RFC 8693 Act-Anspruchsstruktur
Ein Identitätswechseltoken wird mit dem aktiven ES256-Schlüssel des Projekts signiert und entspricht dem Standardformat für Benutzerzugriffstoken mit einem zusätzlichen act (Akteur)-Objekt:
sub: Die Identität des Benutzers, der imitiert wird. Postgres RLS (auth.uid()) ergibt diesen Wert.act.sub: Die Identität des Operators, der das Token generiert hat (z. B. Konsolenbenutzer-ID oderservice_role).
Admin-Endpunkt
Der Identitätswechsel erfordert eine Administratorautorisierung über einen service_role-Schlüssel oder einen Operator mit der Rolle admin.
Anforderungstext
| Feld | Typ | Erforderlich | Beschreibung |
|---|---|---|---|
reason | Zeichenfolge | Optional | Begründung in Sicherheitsprotokollen aufgezeichnet. Erforderlich für privilegierte Zielkonten (admin/owner). |
ttl_seconds | Nummer | Optional | Token-Lebensdauer in Sekunden (1 bis 600, Standard 300). |
allow_privileged | Boolescher Wert | Optional | Muss auf true gesetzt werden, wenn der Zielbenutzer eine admin- oder owner-Rolle hat. |
Antwort (200 OK)
TypeScript SDK
Verwenden Sie authAdmin.impersonate() mit einem Aurabase-Client, der mit dem Schlüssel service_role konfiguriert ist:
Privilegierte Konten und Prüfprotokolle
Schutz privilegierter Konten
Zielkonten, die über Administratorrollen verfügen (z. B. role = 'admin', role = 'owner' oder app_metadata.roles mit 'admin'), stellen hochwertige Ziele dar. So verhindern Sie eine versehentliche Rechteerweiterung:
- Sie müssen
allow_privileged: trueexplizit übergeben. - Es muss eine nicht leere Zeichenfolge
reasonbereitgestellt werden. - Wenn eine der Prüfungen fehlschlägt, lehnt das Backend die Anfrage mit
403 Forbiddenab.
Sicherheitsüberwachungsprotokoll
Jedes Identitätswechselereignis wird in die Tabelle auth_audit_log des Mandanten eingefügt:
- Aktion:
admin_impersonation - Benutzer-ID: ID des Zielbenutzers
- Metadaten: JSON-Objekt, das
{ "actor": "...", "reason": "...", "ttl_seconds": 300, "privileged": false }enthält
Dieser Trail ist in Studio › Authentifizierung › Audit-Protokolle sichtbar und kann über Datenbankabläufe an SIEM-Tools weitergeleitet werden.