Benutzer Import & Export
Auris bietet ein Massen-Import- und -Export-System für Benutzerdaten. Import ist nützlich für die Migration von einem bestehenden Identity Provider, das Onboarding einer Gruppe von Mitarbeitern aus einem HR-System oder das Seeden von Benutzern in einem neuen Tenant. Export ist nützlich für die Erstellung von Backups, das Audit deiner Benutzerbasis oder die Migration zu einem anderen System.
Beide Operationen sind asynchron. Auris verarbeitet die Datei im Hintergrund und stellt einen Job-Status-Endpunkt bereit, so dass du auf den Abschluss warten oder einen Fortschrittsindikator anzeigen kannst.
Import-Formate
Auris akzeptiert zwei Dateiformate für den Benutzer-Import.
CSV-Format
Die erste Zeile muss eine Kopfzeile sein. Die Reihenfolge der Spalten spielt keine Rolle, aber die Spaltennamen müssen exakt übereinstimmen.
email,username,firstName,lastName,password,roles
[email protected],alice,Alice,Rossi,TempPass123!,member
[email protected],bob,Bob,Marley,,member|billing-admin
[email protected],,Carol,White,,,Spaltenreferenz:
| Spalte | Pflicht | Hinweise |
|---|---|---|
email | Ja | Muss innerhalb des Tenants eindeutig sein |
username | Nein | Standardmäßig der lokale Teil der E-Mail-Adresse, wenn weggelassen |
firstName | Nein | |
lastName | Nein | |
password | Nein | Wenn weggelassen, wird der Benutzer ohne Anmeldedaten erstellt und muss per E-Mail zurücksetzen |
roles | Nein | Pipe-getrennte Liste von Rollennamen: member|admin |
JSON-Format
Die Datei muss ein JSON-Array von Benutzerobjekten enthalten. Felder stimmen mit den CSV-Spaltennamen überein.
[
{
"email": "[email protected]",
"username": "alice",
"firstName": "Alice",
"lastName": "Rossi",
"password": "TempPass123!",
"roles": ["member"]
},
{
"email": "[email protected]",
"roles": ["member", "billing-admin"]
}
]In Importdateien angegebene Passwörter werden über HTTPS übertragen und serverseitig vor der Speicherung gehasht. Das Klartext-Passwort wird nie gespeichert. Für Produktions-Importe echter Benutzerdaten ist es vorzuziehen, Passwörter wegzulassen und stattdessen einen Passwort-Reset-Flow zu erzwingen.
Import-Prozess
Datei hochladen
Datei über die Drag-and-Drop-Schnittstelle der Console (Einstellungen → Import/Export) oder über die API einreichen:
/api/users/importRequires: manage:usersAkzeptiert eine multipart/form-data-Anfrage mit einem file-Feld, das eine CSV- oder JSON-Datei enthält. Gibt den erstellten Import-Job zurück.
curl -X POST https://auth.yourdomain.com/api/users/import \
-H "Authorization: Bearer $TOKEN" \
-H "x-tenant: your-tenant" \
-F "[email protected]"Antwort:
{
"ok": true,
"data": {
"id": "import_01HX...",
"fileName": "benutzer.csv",
"format": "CSV",
"status": "PENDING",
"totalRows": 0,
"processedRows": 0,
"successCount": 0,
"errorCount": 0,
"createdAt": "2025-06-10T14:00:00Z"
}
}Job-Fortschritt verfolgen
Job-Detail-Endpunkt abfragen, bis status nicht mehr PENDING oder PROCESSING ist.
/api/users/import/[id]Requires: manage:usersGibt den aktuellen Status eines Import-Jobs zurück, einschließlich Zeilenanzahl und Fehlern pro Zeile.
Job-Status:
| Status | Bedeutung |
|---|---|
PENDING | Job ist in der Warteschlange und hat noch nicht mit der Verarbeitung begonnen |
PROCESSING | Auris liest und erstellt aktiv Benutzer |
COMPLETED | Alle Zeilen erfolgreich verarbeitet |
PARTIAL | Verarbeitung abgeschlossen, aber einige Zeilen fehlgeschlagen — siehe errors |
FAILED | Der gesamte Job fehlgeschlagen (z.B. ungültiges Dateiformat, nicht lesbare Daten) |
Ergebnisse überprüfen
Eine abgeschlossene oder teilweise Job-Antwort enthält Fehlerdetails:
{
"ok": true,
"data": {
"id": "import_01HX...",
"status": "PARTIAL",
"totalRows": 150,
"processedRows": 150,
"successCount": 147,
"errorCount": 3,
"errors": [
{
"row": 12,
"email": "[email protected]",
"reason": "E-Mail-Adresse existiert bereits in diesem Tenant"
},
{
"row": 67,
"reason": "Pflichtfeld fehlt: email"
},
{
"row": 103,
"email": "ungueltige-email",
"reason": "Ungültiges E-Mail-Adressformat"
}
]
}
}Import-Verhalten
Wie Auris Grenzfälle beim Import behandelt:
Doppelte E-Mails: Wenn ein Benutzer mit derselben E-Mail bereits im Tenant existiert, wird die Zeile übersprungen und als Fehler gezählt. Der bestehende Benutzerdatensatz wird nicht geändert.
Fehlende Passwörter: Benutzer, die ohne Passwort erstellt werden, werden in einem deaktivierten-Anmeldedaten-Zustand provisioniert. Sie müssen den “Passwort vergessen”-Flow verwenden oder eine von einem Admin ausgelöste Passwort-Reset-E-Mail erhalten, um Zugang zu erhalten.
Rollenzuweisung: In der Importdatei aufgeführte Rollen werden nach der Benutzererstellung zugewiesen. Wenn ein Rollenname im Tenant nicht existiert, wird die Zeile als partieller Fehler markiert — der Benutzer wird erstellt, aber die Rollenzuweisung schlägt fehl.
Keycloak-Synchronisation: Jeder erfolgreich importierte Benutzer wird sowohl in der Auris-Datenbank als auch im zugrundeliegenden Keycloak-Realm erstellt. Die beiden Datensätze sind über keycloakId verknüpft.
Transaktionsmodell: Auris verarbeitet Zeilen einzeln statt in einer einzigen Transaktion. Ein Fehlschlag in Zeile 50 macht die Zeilen 1–49 nicht rückgängig.
Import-Jobs auflisten
/api/users/importRequires: manage:usersGibt eine paginierte Liste aller Import-Jobs für den Tenant zurück, sortiert nach Erstellungsdatum absteigend.
Benutzer exportieren
Benutzer-Export generiert eine Datei mit allen aktiven (nicht gelöschten) Benutzern im Tenant. Die Operation ist asynchron: Du löst den Export aus und lädst die Datei herunter, wenn die Generierung abgeschlossen ist.
Export auslösen
/api/users/exportRequires: manage:usersStartet einen Export-Job. Akzeptiert format im Request-Body: "CSV" oder "JSON". Gibt den Export-Job-Datensatz zurück.
{
"format": "JSON"
}Antwort:
{
"ok": true,
"data": {
"id": "export_01HX...",
"format": "JSON",
"status": "PENDING",
"totalUsers": 0,
"expiresAt": "2025-06-17T14:00:00Z",
"createdAt": "2025-06-10T14:00:00Z"
}
}Auf Abschluss warten
/api/users/exportRequires: manage:usersGibt eine Liste aller Export-Jobs zurück, einschließlich Status und Ablaufzeit.
Datei herunterladen
/api/users/export/[id]/downloadRequires: manage:usersGibt die Export-Datei als binäre Antwort zurück. Accept: text/csv oder Accept: application/json setzen, um den Antwort-Content-Type zu steuern, oder auf das konfigurierte Format des Jobs vertrauen.
curl https://auth.yourdomain.com/api/users/export/export_01HX.../download \
-H "Authorization: Bearer $TOKEN" \
-H "x-tenant: your-tenant" \
-o benutzer-export.jsonExport-Dateien werden temporär gespeichert und laufen nach einer konfigurierten Dauer ab (Standard: 7 Tage). Lade die Datei vor dem expiresAt-Zeitstempel herunter. Nach dem Ablauf musst du einen neuen Export auslösen.
Exportierte Felder
Der Export enthält:
| Feld | Hinweise |
|---|---|
id | Auris-Benutzer-ID |
email | |
username | |
firstName | |
lastName | |
enabled | true / false |
roles | Array von Rollennamen |
createdAt | ISO 8601-Zeitstempel |
lastLogin | ISO 8601-Zeitstempel oder null, wenn der Benutzer sich noch nie angemeldet hat |
metadata | Vollständiges Metadaten-Objekt |
Passwort-Hashes sind nie in Exporten enthalten. Wenn du zu einem anderen IdP migrierst, müssen Benutzer ihre Passwörter nach der Migration zurücksetzen.
Console-Anleitung
Die Console-Import/Export-Schnittstelle ist unter Einstellungen → Import/Export verfügbar.
Importieren:
- Eine
.csv- oder.json-Datei in die Upload-Zone ziehen und ablegen oder klicken, um die Dateiauswahl zu öffnen. - Die Console zeigt eine Vorschau der ersten 10 Zeilen zur Validierung vor dem Einreichen an.
- Nach dem Einreichen verfolgt ein Fortschrittsbalken die Verarbeitung. Der Balken wird alle paar Sekunden durch Abfragen aktualisiert.
- Wenn der Job abgeschlossen ist, zeigt eine Ergebniszusammenfassung die Erfolgsanzahl, Fehleranzahl und einen Link zum Fehlerdetails-Dialog.
Exportieren:
- Exportformat auswählen (CSV oder JSON).
- Auf “Benutzer exportieren” klicken. Die Console zeigt den Job-Status.
- Wenn der Export abgeschlossen ist, erscheint eine “Herunterladen”-Schaltfläche. Darauf klicken, um die Datei zu speichern.
- Frühere Exporte werden mit ihrem Status, Erstellungsdatum und Ablaufdatum aufgeführt.
Erforderliche Berechtigungen
| Operation | Berechtigung |
|---|---|
| Import-Jobs auflisten | manage:users |
| Import-Datei hochladen | manage:users |
| Import-Job-Details abrufen | manage:users |
| Export auslösen | manage:users |
| Export-Datei herunterladen | manage:users |
Verwandte Seiten
- Benutzer verwalten — Individuelles Benutzer-CRUD über API und Console
- SCIM 2.0-Provisionierung — Automatisierte laufende Synchronisation von einem externen IdP
- Console: Import/Export — Vollständige Console-Anleitung mit Screenshots