Skip to Content

Sitzungsverwaltung

Auris verwaltet Benutzersitzungen durch eine Kombination aus OAuth2-Tokens (Access Tokens und Refresh Tokens) und serverseitigen Sitzungsdatensätzen. Dieser Leitfaden erklärt den Sitzungs-Lebenszyklus, wie Sitzungsrichtlinien konfiguriert werden, wie Token-Rotation funktioniert und wie Sitzungen programmatisch widerrufen werden.

Sitzungs-Lebenszyklus

Wenn sich ein Benutzer über den gehosteten Login-Flow authentifiziert, erstellt Auris Folgendes:

  1. OAuth-Sitzung — Ein serverseitiger Datensatz, der den Authentifizierungsstatus verfolgt, mit einem httpOnly-Cookie gespeichert. Diese Sitzung hat eine 30-Minuten-TTL und wird nur während des Login-Flows selbst verwendet.

  2. Access Token — Ein kurzlebiges JWT (Standard: 60 Minuten), das an deine Anwendung zurückgegeben wird. Wird als Bearer-Token zur Authentifizierung von API-Anfragen verwendet.

  3. Refresh Token — Ein langlebiges opakes Token (Standard: 30 Tage), das verwendet wird, um neue Access Tokens zu erhalten, ohne dass sich der Benutzer erneut anmelden muss.

  4. Login-Sitzung — Ein serverseitiger Datensatz in Auris, der die aktive Sitzung verfolgt, einschließlich Geräteinformationen, IP-Adresse und verwendeter Authentifizierungsmethoden.

Sitzungsrichtlinien konfigurieren

Sitzungsrichtlinien steuern, wie lange Sitzungen gültig bleiben. Konfiguriere diese in der Auris-Console unter Einstellungen → Sicherheit.

EinstellungStandardBeschreibung
Access-Token-Lebensdauer60 MinutenWie lange ein Access Token gültig ist, bevor es erneuert werden muss
Refresh-Token-Lebensdauer30 TageMaximale Zeit, in der ein Refresh Token verwendet werden kann
Absolute Sitzungsablaufzeit30 TageMaximale Sitzungsdauer unabhängig von der Aktivität
Idle-Timeout7 TageWenn ein Benutzer innerhalb dieses Zeitraums keine authentifizierte Aktion ausführt, wird die Sitzung invalidiert
Refresh-Token-RotationAktiviertBei Aktivierung gibt jede Verwendung eines Refresh Tokens ein neues Refresh Token aus

Kurze Access-Token-Lebensdauern (15–30 Minuten) in Kombination mit Refresh-Token-Rotation bieten die beste Sicherheitslage. Das SDK übernimmt die Aktualisierung automatisch, sodass kürzere Lebensdauern das Benutzererlebnis nicht beeinträchtigen.

Token-Rotation

Wie Refresh-Token-Rotation funktioniert

Wenn die Refresh-Token-Rotation aktiviert ist (empfohlen), funktioniert der Token-Exchange-Flow so:

  1. Deine Anwendung sendet das aktuelle Refresh Token an den Token-Endpunkt
  2. Auris validiert das Refresh Token und prüft, ob es widerrufen wurde
  3. Auris gibt ein neues Access Token und ein neues Refresh Token aus
  4. Das alte Refresh Token wird sofort invalidiert
  5. Deine Anwendung speichert das neue Refresh Token und ersetzt das alte

Wiederverwendungs-Erkennung

Wenn Auris ein Refresh Token erhält, das bereits verbraucht wurde (was darauf hinweist, dass es gestohlen und erneut abgespielt wurde), geschieht Folgendes:

  1. Alle Refresh Tokens in derselben Token-Familie werden invalidiert
  2. Ein Sicherheitsereignis wird im Audit-Log aufgezeichnet
  3. Der Benutzer muss sich auf allen Geräten erneut authentifizieren

Stelle sicher, dass deine Anwendung die Token-Speicherung atomar behandelt. Wenn eine Refresh-Antwort empfangen wird, aber das neue Token nicht gespeichert wird, ist das alte Token bereits ungültig und der Benutzer muss sich erneut authentifizieren.

Sitzungen programmatisch widerrufen

Eine bestimmte Sitzung widerrufen

curl -X DELETE https://auth.ihredomain.com/api/sessions/{sessionId} \ -H "Authorization: Bearer $AURIS_ACCESS_TOKEN" \ -H "x-tenant: ihr-tenant-id"

Oder aus dem SDK:

import { AurisClient } from '@auris/js' const auris = new AurisClient({ domain: 'auth.ihrUnternehmen.com', clientId: 'ihr-client-id', }) // Aktuelle Sitzung abmelden await auris.logout({ returnTo: 'https://ihreapp.com' })

Alle Sitzungen eines Benutzers widerrufen

Bei einem Sicherheitsvorfall (kompromittiertes Konto, gestohlene Anmeldedaten) alle Sitzungen eines Benutzers sofort beenden:

curl -X POST https://auth.ihredomain.com/api/users/{userId}/revoke-sessions \ -H "Authorization: Bearer $AURIS_ACCESS_TOKEN" \ -H "x-tenant: ihr-tenant-id"

Erneute Authentifizierung erzwingen

Um zu verlangen, dass sich ein Benutzer bei seiner nächsten Interaktion erneut authentifiziert, ohne bestehende Sitzungen zu beenden:

curl -X POST https://auth.ihredomain.com/api/users/{userId}/force-reauth \ -H "Authorization: Bearer $AURIS_ACCESS_TOKEN" \ -H "x-tenant: ihr-tenant-id"

Sitzungsverwaltung für mehrere Geräte

Auris verfolgt Sitzungen pro Gerät, sodass Benutzer und Administratoren aktive Sitzungen auf allen Geräten anzeigen und verwalten können.

Aktive Sitzungen auflisten

curl https://auth.ihredomain.com/api/user/sessions \ -H "Authorization: Bearer $AURIS_ACCESS_TOKEN" \ -H "x-tenant: ihr-tenant-id"

Antwort:

{ "ok": true, "data": [ { "id": "sess_abc123", "deviceInfo": "Chrome 120 auf macOS", "ipAddress": "203.0.113.42", "location": "Mailand, Italien", "lastActiveAt": "2026-01-15T14:30:00Z", "createdAt": "2026-01-10T09:00:00Z", "isCurrent": true } ] }

Admin-Sitzungsverwaltung

Administratoren können Sitzungen für jeden Benutzer in der Console anzeigen und widerrufen:

  1. Navigiere zu Benutzer und wähle den Benutzer aus
  2. Öffne den Sitzungen-Reiter
  3. Zeige alle aktiven Sitzungen mit Gerät, IP, Standort und letzter Aktivität an
  4. Klicke auf Widerrufen für einzelne Sitzungen oder Alle widerrufen

Best Practices für Sitzungssicherheit

Kurze Access-Token-Lebensdauern verwenden. Access Tokens sind zustandslos und können nicht einzeln widerrufen werden. Halte sie kurz (15–60 Minuten).

Refresh-Token-Rotation aktivieren. Dies ist die effektivste Verteidigung gegen Token-Diebstahl.

Absoluten Sitzungsablauf setzen. Auch mit Refresh-Token-Rotation sollten Sitzungen eine Obergrenze haben. Für die meisten Anwendungen sind 30 Tage ein guter Standard.

Sitzungen serverseitig für sensible Operationen verifizieren:

import { getSession } from '@auris/nextjs/server' export async function transferFunds(req: Request) { const session = await getSession() if (!session) { return Response.json({ error: 'Sitzung abgelaufen' }, { status: 401 }) } // Sitzung ist gültig und aktiv — fortfahren }

Verwandte Leitfäden