Skip to Content

Benutzer verwalten

Auris bietet ein vollständiges Benutzerverwaltungssystem, das sowohl über die Admin Console als auch über die REST API zugänglich ist. Administratoren können Benutzer auflisten, erstellen, aktualisieren, deaktivieren, weich löschen und wiederherstellen, ohne die native Admin-UI von Keycloak zu berühren.


Benutzer auflisten

Die Benutzerliste unterstützt Paginierung, Volltext-Suche, Rollen-Filterung und Status-Filterung. Ergebnisse werden im Standard-Auris-Paginierungs-Umschlag zurückgegeben.

GET/api/usersRequires: manage:users

Gibt eine paginierte Liste von Benutzern für den aktuellen Tenant zurück. Unterstützt Query-Parameter: page, limit, search (stimmt mit E-Mail, Benutzername, firstName, lastName überein), role (nach Rollenname filtern), status (active | disabled | deleted).

Antwort-Form:

{ "data": [ { "id": "usr_01HX...", "email": "[email protected]", "username": "alice", "firstName": "Alice", "lastName": "Rossi", "enabled": true, "roles": ["member"], "createdAt": "2025-03-01T10:00:00Z", "lastLogin": "2025-06-10T08:45:00Z", "metadata": {} } ], "pagination": { "page": 1, "limit": 20, "total": 142, "totalPages": 8 } }

Console-Anleitung: Navigiere zu Admin Console → Benutzer. Die Tabelle wird automatisch aktualisiert, wenn du den Suchbegriff änderst oder Filter anwendest. Klicke auf eine Zeile, um das Benutzer-Detail-Sheet zu öffnen.


Benutzer erstellen

Benutzer können direkt mit einem Passwort erstellt werden, oder ohne Passwort, um eine Einladungs-E-Mail auszulösen, die den Benutzer auffordert, eigene Anmeldedaten festzulegen.

POST/api/usersRequires: manage:users

Erstellt einen neuen Benutzer sowohl in der Auris-Datenbank als auch im zugrundeliegenden Keycloak-Realm.

Request-Body:

{ "email": "[email protected]", "username": "bob", "firstName": "Bob", "lastName": "Marley", "password": "SicheresPasswort123!", "sendInvite": false, "roles": ["member"], "metadata": { "department": "engineering", "employeeId": "MA-4421" } }

Feldreferenz:

FeldTypPflichtHinweise
emailstringJaMuss innerhalb des Tenants eindeutig sein
usernamestringNeinStandardmäßig der lokale Teil der E-Mail-Adresse
firstNamestringNein
lastNamestringNein
passwordstringNeinWeglassen, um stattdessen eine Einladung zu senden
sendInvitebooleanNeinEinrichtungs-E-Mail senden, wenn password weggelassen wird
rolesstring[]NeinArray von Rollennamen, die bei der Erstellung zugewiesen werden
metadataobjectNeinBeliebiges JSON, das im Benutzerdatensatz gespeichert wird

Wenn sowohl password als auch sendInvite: true angegeben werden, wird das Passwort gesetzt und keine Einladungs-E-Mail gesendet. sendInvite: true ohne password setzen, damit der Benutzer beim ersten Zugriff eigene Anmeldedaten festlegen muss.

Console-Anleitung: Klicke auf der Benutzerseite auf die Schaltfläche “Neuer Benutzer”. Der Dialog zeigt ein Formular mit Tabs: Allgemein (Name, E-Mail), Anmeldedaten (Passwort oder Einladungs-Umschalter) und Rollen (Mehrfachauswahl).


Benutzer aktualisieren

PATCH/api/users/[id]Requires: manage:users

Aktualisiert einen Benutzerdatensatz teilweise. Nur die im Request-Body enthaltenen Felder werden geändert.

Aktualisierbare Felder:

{ "firstName": "Robert", "lastName": "Marley", "enabled": true, "roles": ["member", "billing-admin"], "metadata": { "department": "leadership" } }

Das Aktualisieren von roles ersetzt den gesamten Rollensatz des Benutzers — alle beabsichtigten Rollen einschließen, nicht nur die hinzuzufügenden. Um eine einzelne Rolle hinzuzufügen, ohne andere zu beeinflussen, zuerst die aktuelle Rollenliste lesen, die neue Rolle anhängen und dann den vollständigen Satz übermitteln.

Das Aktualisieren von enabled: false deaktiviert den Benutzer sofort in Keycloak und macht alle aktiven Sitzungen ungültig.


Weiches Löschen und Wiederherstellen

Auris verwendet weiches Löschen, um Audit-Trails zu erhalten. Das Löschen eines Benutzers markiert den Datensatz mit deletedAt, anstatt ihn aus der Datenbank oder Keycloak zu entfernen.

DELETE/api/users/[id]Requires: manage:users

Löscht den Benutzer weich, indem deletedAt gesetzt wird. Der Benutzer wird sofort in Keycloak deaktiviert und kann sich nicht anmelden.

Einen Benutzer wiederherstellen:

POST/api/users/[id]/restoreRequires: manage:users

Löscht deletedAt und aktiviert den Benutzer in Keycloak erneut.

Console-Anleitung: Die Benutzerseite hat einen “Gelöscht”-Filter-Tab, der weich gelöschte Benutzer anzeigt. Jede gelöschte Benutzerzeile hat eine “Wiederherstellen”-Aktion im Dropdown-Menü.

Hartes Löschen (dauerhafte Entfernung aller Benutzerdaten einschließlich Audit-Logs) ist ein separater Vorgang, der nur für Tenant-Eigentümer über Console → Einstellungen → Gefahrenzone verfügbar ist. Hartes Löschen erfüllt DSGVO-Löschanträge.


Benutzersitzungen

Auris verfolgt aktive Keycloak-Sitzungen pro Benutzer. Administratoren können Sitzungsdetails anzeigen und einzelne Sitzungen widerrufen, um eine erneute Authentifizierung zu erzwingen — nützlich, wenn das Gerät eines Benutzers verloren gegangen oder kompromittiert wurde.

GET/api/users/[id]/sessionsRequires: manage:users

Gibt die Liste der aktiven Sitzungen für den Benutzer zurück, einschließlich Geräteinformationen, IP-Adresse und letztem Aktivitätszeitstempel.

DELETE/api/users/[id]/sessions/[sessionId]Requires: manage:users

Widerruft eine einzelne Sitzung. Der Benutzer wird bei der nächsten Token-Verwendung abgemeldet.

DELETE/api/users/[id]/sessionsRequires: manage:users

Widerruft alle aktiven Sitzungen für den Benutzer.

Console-Anleitung: Öffne ein Benutzer-Detail-Sheet und wähle den Tab “Sitzungen”. Jede Sitzung zeigt Browser/OS, IP-Adresse, Login-Zeit und eine “Widerrufen”-Schaltfläche.


Benutzer-Metadaten

Metadaten ermöglichen es dir, beliebige JSON-Daten für einen Benutzer zu speichern, ohne das Auris-Schema zu ändern. Sie werden bei jedem Benutzerobjekt zurückgegeben und sind im Management SDK zugänglich.

Häufige Anwendungsfälle:

  • Anwendungsspezifische Einstellungen (theme, language, timezone)
  • Interne Bezeichner (employeeId, costCenter, managerId)
  • Feature-Flags oder Berechtigungsdaten
  • Onboarding-Fortschrittsverfolgung

Metadaten werden als flaches oder verschachteltes JSON-Objekt gespeichert. Es gibt kein erzwungenes Schema — die Struktur ist vollständig anwendungsdefiniert.

{ "metadata": { "department": "engineering", "employeeId": "MA-4421", "onboarding": { "completed": true, "completedAt": "2025-04-15T09:00:00Z" } } }

Metadaten werden standardmäßig nicht in den JWT eingeschlossen. Um Metadatenwerte in Tokens einzufügen, konfiguriere Benutzerdefinierte JWT-Claims in Console → Applications → [App] → Custom Claims.


Management SDK

Das Management SDK für serverseitige Benutzerverwaltung verwenden. Das Management SDK authentifiziert sich über M2M-Client-Credentials — es ist nicht für die Verwendung in Browser-Code gedacht.

import { AurisClient } from '@auris/js' const auris = new AurisClient({ domain: 'https://auth.yourdomain.com', clientId: process.env.AURIS_CLIENT_ID, clientSecret: process.env.AURIS_CLIENT_SECRET, }) // Management-Client mit M2M-Credentials erstellen const mgmt = auris.createManagementClient({ clientId: process.env.AURIS_MGMT_CLIENT_ID, clientSecret: process.env.AURIS_MGMT_CLIENT_SECRET, }) // Benutzer mit Paginierung auflisten const result = await mgmt.users.list({ page: 1, limit: 20 }) console.log(result.data) // User[] console.log(result.pagination) // { page, limit, total, totalPages } // Einen bestimmten Benutzer abrufen const user = await mgmt.users.get('usr_01HX...') // Einen Benutzer erstellen const newUser = await mgmt.users.create({ email: '[email protected]', firstName: 'Carol', roles: ['member'], sendInvite: true, }) // Einen Benutzer aktualisieren await mgmt.users.update('usr_01HX...', { metadata: { department: 'product' }, }) // Einen Benutzer deaktivieren await mgmt.users.update('usr_01HX...', { enabled: false }) // Einen Benutzer löschen (weich) await mgmt.users.delete('usr_01HX...')

Erforderliche Berechtigungen

OperationBerechtigung
Benutzer auflistenmanage:users
Benutzer erstellenmanage:users
Benutzer aktualisierenmanage:users
Benutzer löschen / wiederherstellenmanage:users
Sitzungen anzeigenmanage:users
Sitzungen widerrufenmanage:users

Verwandte Seiten