Imitatie van gebruiker
Handel namens elke gebruiker voor ondersteuning en foutopsporing zonder om zijn wachtwoord te vragen. Beperkt tot 10 minuten, strikt gecontroleerd in beveiligingslogboeken.
Wat is nabootsing?
Met gebruikersimitatie kan een beheerder of ondersteuningstechnicus een kortstondig dragertoken genereren dat als een specifieke gebruiker fungeert. Dit maakt het reproduceren van bugs van klanten mogelijk, het controleren van RLS beleidsmachtigingen of het oplossen van gegevensproblemen zonder om inloggegevens te vragen.
Nabootsing van identiteit in Aurabase garandeert drie fundamentele beveiligingsprincipes:
- Korte levensduur: Imitatietokens zijn geldig tussen 1 en 600 seconden (maximaal 10 minuten, standaard 300 seconden). Ze bevatten nooit een vernieuwingstoken.
- Expliciete actortoeschrijving: Het uitgegeven toegangstoken draagt de standaard RFC 8693
act-claim die aangeeft wie de sessie heeft geïnitieerd. - Audit vóór uitgifte: De actie wordt vastgelegd in
auth_audit_logmet de actor, reden, duur en doelgebruiker voordat het token ooit wordt gegenereerd. Als het invoegen van het logboek mislukt, wordt er geen token uitgegeven.
RFC 8693-claimstructuur
Een imitatietoken wordt ondertekend met de actieve ES256-sleutel van het project en voldoet aan het standaard gebruikerstoegangstokenformaat, met een extra act (actor) object:
sub: De identiteit van de gebruiker die wordt nagebootst. Postgres RLS (auth.uid()) resulteert in deze waarde.act.sub: De identiteit van de operator die het token heeft gegenereerd (bijvoorbeeld consolegebruikers-ID ofservice_role).
Beheerdereindpunt
Voor nabootsing van identiteit is beheerdersautorisatie vereist via een service_role-sleutel of een operator met de rol admin.
Lichaam aanvragen
| Veld | Typ | Vereist | Beschrijving |
|---|---|---|---|
reason | touwtje | Optioneel | Rechtvaardiging vastgelegd in beveiligingslogboeken. Vereist voor geprivilegieerde doelaccounts (admin/owner). |
ttl_seconds | nummer | Optioneel | Levensduur van token in seconden (1 tot 600, standaard 300). |
allow_privileged | Booleaans | Optioneel | Moet worden ingesteld op true als de doelgebruiker een rol admin of owner heeft. |
Reactie (200 OK)
TypeScript SDK
Gebruik authAdmin.impersonate() met een Aurabase-client geconfigureerd met de sleutel service_role:
Bevoorrechte accounts en auditlogboeken
Bevoorrechte accounts bewaken
Doelaccounts met beheerdersrollen (zoals role = 'admin', role = 'owner' of app_metadata.roles met 'admin') vertegenwoordigen waardevolle doelen. Om onbedoelde bevoegdheidsverhoging te voorkomen:
- U moet expliciet
allow_privileged: truedoorgeven. - Er moet een niet-lege tekenreeks
reasonworden opgegeven. - Als een van beide controles mislukt, wijst de backend het verzoek af met
403 Forbidden.
Beveiligingsauditlogboek
Elke imitatiegebeurtenis wordt ingevoegd in de tabel auth_audit_log van de tenant:
- Actie:
admin_impersonation - Gebruikers-ID: ID van de doelgebruiker
- Metagegevens: JSON-object met
{ "actor": "...", "reason": "...", "ttl_seconds": 300, "privileged": false }
Dit spoor is zichtbaar in Studio › Authenticatie › Auditlogboeken en kan via database drains worden doorgestuurd naar SIEM-tools.