Viele Benutzer hochladen
Provisionierung deiner Benutzer in einem Environment als internal users, mit oder ohne Passwort:
- Du kannst die Benutzer mit ihren Passwörtern hochladen, wenn du die Passwörter der Benutzer kennst.
- Andernfalls kannst du die Benutzer ohne Passwort hochladen und die Benutzer werden aufgefordert, ein Passwort mit einem E Mail oder SMS Bestätigungscode zu setzen. Erfordert, dass die Benutzer entweder eine E Mail oder eine Telefonnummer haben.
Die Benutzer werden in Bulk in ein Environment hochgeladen, mit bis zu 1.000 Benutzern pro Request, wenn die Benutzer ohne Passwörter erstellt werden, und bis zu 100 Benutzer pro Request, wenn Passwörter enthalten sind. Dies unterstützt mehrere Uploads und erlaubt den Import von Millionen Benutzern. Du kannst entweder die FoxIDs Control API direkt verwenden oder das Seed Tool nutzen.
Beispiel Upload Zeit für 50.000 Benutzer
| Szenario | Benutzer | Batch Größe | Ca. Gesamtzeit |
|---|---|---|---|
| Ohne Passwörter | 50.000 | 1.000 | ~2 Minuten |
| Mit Passwörtern | 50.000 | 100 | ~2 Stunden |
| Passwort Hashes vorab auf Client berechnet | 50.000 | 1.000 | ~5 Minuten |
Zeiten sind ungefähr und hängen von Client Maschine, Netzwerk und Infrastruktur ab.
Das Hochladen von Benutzern mit Passwörtern dauert länger, weil für jeden Benutzer ein Password Hash berechnet werden muss, und dieser Vorgang ist aus Sicherheitsgründen absichtlich zeitaufwendig.
Die Upload Zeit kann verbessert werden, indem die Passwort Hashes auf dem Client vor dem Upload berechnet werden.
Upload mit Seed Tool
Das Seed Tool liest Benutzer aus einer CSV Datei und lädt die Benutzer in das konfigurierte Environment hoch. Das Seed Tool unterstützt auch das Bulk Löschen von Benutzern.
Standardmäßig berechnet das Seed Tool Password Hashes auf dem Client während des Uploads vor, um die Server Verarbeitungszeit zu reduzieren.
CSV Datei
Die CSV Datei Elemente sind durch ; getrennt und der Text kann optional in Anführungszeichen stehen.
Du kannst Beispiel-CSV-Dateien hier finden.
(Zum Beispiel siehe UTF 8 Zeichen in Claims in der Datei password-claims-3-test-users.csv, die Mehrsprachigkeit / erweiterte Zeichenunterstützung demonstriert.)
Die erste Zeile der CSV Datei sind die case sensitive Headers. Du kannst alle Headers oder eine Teilmenge verwenden und die Reihenfolge der Headers ändern.
Headers:
- Phone
- Username
- ConfirmAccount
- EmailVerified
- PhoneVerified
- Password
- PasswordHashAlgorithm
- PasswordHash
- PasswordHashSalt
- ChangePassword
- PasswordLastChanged
- SetPasswordEmail
- SetPasswordSms
- DisableAccount
- Claims
- RequireMultiFactor
Die Anzahl der Headers und Elemente in jeder Zeile muss übereinstimmen.
Dieses CSV Beispiel verwendet die Email und SetPasswordEmail Headers, um Benutzer ohne Passwörter hochzuladen. Der Benutzer muss beim ersten Login ein Passwort mit E Mail Bestätigung setzen.
Die E Mail wird danach als verifiziert markiert.
Email;SetPasswordEmail
u1@somedomain.test;true
u2@somedomain.test;true
u3@somedomain.test;true
Dieses CSV Beispiel enthält einen Benutzernamen und setzt E Mail und Telefonnummer als verifiziert. Die Passwörter werden mit einem E Mail oder SMS Bestätigungscode gesetzt.
Email;Phone;Username;EmailVerified;PhoneVerified;SetPasswordEmail;SetPasswordSms
u1@somedomain.test;;u1;true;true;true;false
;+4422222222;u2;true;true;false;true
u3@somedomain.test;+4433333333;u3;true;true;true;false
Dieses CSV Beispiel verwendet alle Headers und lädt Benutzer mit Passwörtern und Claims hoch. Der letzte Benutzer wird als deaktivierter Benutzer hochgeladen.
Email;Phone;Username;ConfirmAccount;EmailVerified;PhoneVerified;Password;ChangePassword;SetPasswordEmail;SetPasswordSms;DisableAccount;Claims;RequireMultiFactor
u1@somedomain.test;+4411111111;u1;false;true;true;"My1Password!";false;false;false;false;"[{""Claim"": ""role"", ""Values"": [""admin""]}]";false
u2@somedomain.test;+4422222222;u2;false;true;true;"My2Password!";true;false;false;false;"[{""Claim"": ""role"", ""Values"": [""admin""]}, {""Claim"": ""customer_id"", ""Values"": [""1234""]}]";true
u3@somedomain.test;+4433333333;u3;false;true;true;"My3Password!";false;false;false;true;"[{""Claim"": ""role"", ""Values"": [""admin"", ""user""]}]";false
Wenn du Password Hashes auf dem Client vorab berechnest, verwende die Spalten PasswordHashAlgorithm, PasswordHash und PasswordHashSalt und lasse Password leer (oder entferne es). Optional kannst du den ursprünglichen Password Change Timestamp mit PasswordLastChanged (Unix Sekunden) beibehalten. Wenn ein Passwort oder Hash ohne PasswordLastChanged bereitgestellt wird, setzt der Upload die aktuelle Zeit.
Du solltest Passwörter und Claims mit der ;""; Notation hinzufügen. Wenn ein Passwort das " Symbol enthält, wird es escaped, z.B. das Passwort My"Password, das zu ;"My""Password"; wird
Claims werden mit einer JSON Struktur ohne Zeilenumbrüche hinzugefügt und die " Symbole werden escaped.
[
{ "Claim": "role", "Values": ["admin", "user"] },
{ "Claim": "customer_id", "Values": ["1234"] }
]
Seed Tool herunterladen und konfigurieren
Lade zuerst die Datei FoxIDs.SeedTool-x.x.x-win-x64.zip für Windows oder FoxIDs.SeedTool-x.x.x-linux-x64.zip für Linux aus den FoxIDs release herunter und entpacke das Seed Tool.
Das Seed Tool wird in der Datei appsettings.json konfiguriert.
Der Zugriff zum Hochladen von Benutzern wird in deinem master Environment gewährt.
Erstelle einen Seed Tool OAuth 2.0 Client im FoxIDs Control Client:
Damit erhält das Seed Tool vollen Zugriff auf deinen Tenant. Für least privileges siehe API access rights.
- Melde dich in deinem Tenant an (bei self hosted im Haupt Tenant)
- Wähle das master Environment (im oberen mittleren Environment Selector)
- Wähle die Registerkarte Applications
- Klicke New Application
- Klicke Backend Application
- Wähle Show advanced
- Füge einen Name hinzu, z.B.
Seed tool - Ändere die Client ID auf
foxids_seed - Klicke Register
- Merke dir die Authority.
- Merke dir das Client secret.
- Klicke Close
- Klicke auf die Anwendung in der Liste, um sie zu öffnen
- Im Abschnitt Resource and scopes
- Entferne das Häkchen bei Default resource 'foxids_seed' for the application itself
- Klicke Add Resource and scope und füge die Resource
foxids_control_apihinzu - Klicke dann Add Scope und füge den Scope
foxids:tenanthinzu
- Wähle Show advanced
- Im Abschnitt Issue claims
- Klicke Add Claim und füge den Claim
rolehinzu - Klicke dann Add Value und füge den Claim Wert
foxids:tenanthinzu
- Klicke Add Claim und füge den Claim
- Klicke Update

Füge deinen FoxIDs Control API Endpoint und tenant und environment sowie die Authority und das Client secret des Seed Tools und den CSV Datei Pfad zur Seed Tool Konfiguration hinzu.
"SeedSettings": {
"FoxIDsControlEndpoint": "https://control.foxids.com", // self-hosted "https://control.yyyyxxxx.com" or local development https://localhost:44331
"Tenant": "xxxxxx",
"Environment": "xxxxxx",
"Authority": "https://id.foxids.com/zzzzz/master/foxids_seed/", // custom domain, self-hosted or local development "https://https://localhost:44331/zzzzz/master/foxids_seed/"
"ClientId": "foxids_master_seed",
"ClientSecret": "xxxxxx",
"Scope": "foxids_control_api:foxids:tenant",
"UsersSvcPath": "c:\\... xxx ...\\users.csv"
}
Seed Tool ausführen und Benutzer hochladen
- Starte eine Command Prompt
- Starte das Seed Tool mit
SeedTool.exe - Klicke
U, um den Upload der Benutzer zu starten
Der Upload kann je nach Benutzeranzahl eine Weile dauern.