Veel gebruikers uploaden
Gebruik de FoxIDs Seed Tool om gebruikers uit een CSV-bestand als interne gebruikers in een FoxIDs omgeving te laden. Elke gebruiker kan worden geüpload met:
- Geen wachtwoord, voor wachtwoordloze aanmelding met een eenmalige code via e-mail of sms.
- Geen wachtwoord en de eis om er bij de eerste aanmelding een te kiezen, bevestigd via e-mail of sms.
- Een bekend wachtwoord in platte tekst, dat de Seed Tool standaard vóór de upload hasht.
- Een vooraf berekende FoxIDs wachtwoordhash met afzonderlijke salt.
- Een Auth0 bcrypt wachtwoordhash, zodat de gebruiker het bestaande wachtwoord kan behouden.
De Control API accepteert maximaal 1.000 gebruikers per verzoek, waarvan hoogstens 100 een wachtwoord in platte tekst mogen bevatten. Vooraf berekende hashes tellen mee voor de limiet van 1.000 gebruikers. De Seed Tool gebruikt batches van maximaal 1.000 gebruikers met standaard hashing aan de clientzijde. Grotere bestanden worden in meerdere batches geüpload. U kunt ook rechtstreeks de gebruikersbewerkingen van de Control API gebruiken.
Voorbeeld uploadtijd voor 50.000 gebruikers
| Scenario | Gebruikers | Batch grootte | Benad. totale tijd |
|---|---|---|---|
| Zonder wachtwoorden | 50.000 | 1.000 | ~2 minuten |
| Met wachtwoorden | 50.000 | 100 | ~2 uur |
| Wachtwoord hashes vooraf berekend op client | 50.000 | 1.000 | ~5 minuten |
Tijden zijn benaderingen en zijn afhankelijk van clientmachine, netwerk en infrastructuur.
Het uploaden van gebruikers met wachtwoorden duurt langer omdat een password hash voor elke gebruiker moet worden berekend, en deze bewerking is opzettelijk tijdrovend vanwege beveiliging. Uploadtijd kan worden verbeterd door de password hashes op de client te berekenen voordat de gebruikers worden geüpload.
Uploaden met seed tool
De Seed Tool in tools/FoxIDs.SeedTool leest een CSV-bestand en uploadt de gebruikers in bulk via de Control API naar de ingestelde FoxIDs omgeving. Geef het bestandspad op in SeedSettings.UsersSvcPath en selecteer U om te uploaden. De tool ondersteunt ook het in bulk verwijderen van gebruikers.
Standaard berekent de Seed Tool wachtwoordhashes voor wachtwoorden in platte tekst vóór de upload. Aangeleverde FoxIDs of bcrypt hashes worden ongewijzigd geüpload als
Passwordleeg is of ontbreekt.
CSV bestand
Sla het CSV-bestand op als UTF-8, met velden gescheiden door ;. Tekst mag tussen aanhalingstekens staan. De parser splitst op puntkomma's, dus velden kunnen geen puntkomma's of regeleinden bevatten, ook niet binnen aanhalingstekens.
U kunt voorbeeld CSV bestanden hier vinden. (Zie bijvoorbeeld UTF-8 tekens in claims in het bestand password-claims-3-test-users.csv die multi language / extended character support demonstreren.)
De eerste regel van het CSV bestand zijn de hoofdlettergevoelige headers. U kunt ervoor kiezen om alle headers of een subset van de headers te gebruiken en de volgorde van de headers te wijzigen. Headers:
- Phone
- Username
- ConfirmAccount
- EmailVerified
- PhoneVerified
- Password
- PasswordHashAlgorithm
- PasswordHash
- PasswordHashSalt
- ChangePassword
- PasswordLastChanged
- SetPasswordEmail
- SetPasswordSms
- DisableAccount
- Claims
- RequireMultiFactor
Het aantal headers en elementen in elke regel moet overeenkomen.
Dit voorbeeld uploadt een wachtwoordloze gebruiker. Laat Password en alle wachtwoordhashkolommen weg en houd SetPasswordEmail en SetPasswordSms op false. Schakel wachtwoordloze aanmelding in met de bijbehorende e-mail- of sms-provider. Behoud de bekende verificatiestatus van elke gebruiker.
Email;EmailVerified;SetPasswordEmail;SetPasswordSms
passwordless@example.com;true;false;false
Dit CSV-voorbeeld gebruikt de kolomkoppen Email en SetPasswordEmail om gebruikers te uploaden die bij hun eerste aanmelding met e-mailbevestiging een wachtwoord moeten kiezen.
De e-mail wordt daarna als geverifieerd gemarkeerd.
Email;SetPasswordEmail
u1@somedomain.test;true
u2@somedomain.test;true
u3@somedomain.test;true
Dit CSV-voorbeeld bevat een gebruikersnaam en markeert het opgegeven e-mailadres en telefoonnummer als geverifieerd. De wachtwoorden worden ingesteld met een bevestigingscode via e-mail of sms.
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
Dit CSV-voorbeeld uploadt gebruikers met wachtwoorden in platte tekst en claims. De laatste gebruiker wordt als uitgeschakelde gebruiker geüpload.
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
Gebruik bij vooraf berekende wachtwoordhashes de kolommen PasswordHashAlgorithm en PasswordHash en laat Password leeg (of verwijder het). Neem PasswordHashSalt op voor P2HS512:10; laat het weg voor bcrypt, waarvan de volledige hashtekenreeks de salt bevat. Zie de ondersteunde wachtwoordimportformaten. U kunt het oorspronkelijke wachtwoordwijzigingstijdstip behouden met PasswordLastChanged (Unix-seconden). Als een wachtwoord of hash zonder PasswordLastChanged wordt aangeleverd, registreert de upload het huidige tijdstip.
U moet wachtwoorden en claims toevoegen met de ;""; notatie. Als een wachtwoord het " symbool bevat wordt het ge-escaped, bijvoorbeeld het wachtwoord My"Password dat wordt ;"My""Password";
Claims worden toegevoegd met een JSON structuur zonder regelafbrekingen en de " symbolen worden ge-escaped.
[
{ "Claim": "role", "Values": ["admin", "user"] },
{ "Claim": "customer_id", "Values": ["1234"] }
]
Auth0 bcrypt wachtwoordhashes importeren
Zet de gecontroleerde Auth0 gebruikersgegevens en bijbehorende wachtwoordhashes om naar het CSV-formaat van de Seed Tool. Plaats elke volledige Auth0 passwordHash-waarde in PasswordHash en stel PasswordHashAlgorithm in op bcrypt. Laat Password en PasswordHashSalt weg; bcrypt bevat de salt in de hashtekenreeks.
Dit synthetische testaccount gebruikt bijvoorbeeld het Auth0 formaat $2b$10$:
Email;EmailVerified;PasswordHashAlgorithm;PasswordHash;SetPasswordEmail;SetPasswordSms;ChangePassword;DisableAccount
auth0.alice@example.com;true;bcrypt;$2b$10$..CA.uOD/eaGAOmJB.yMBu3YunYvFEoaS5IJZ/wiqfQ/EWx.HaqjC;false;false;false;false
De bronrepository bevat tools/FoxIDs.SeedTool/user_upload_csv_files/auth0-bcrypt-3-test-users.csv met synthetische hashes met kostenfactoren 10 en 12, hashvelden met en zonder aanhalingstekens en een uitgeschakeld account. Deze testhashes gebruiken het wachtwoord QAZ!234wsx. Vervang de voorbeeldgegevens vóór migratie door uw gecontroleerde gebruikers en hun eigen hashes.
Stel UsersSvcPath in op het geconverteerde CSV-bestand en voer de Seed Tool uit en selecteer U. Houd de vlaggen voor wachtwoordinstelling en -wijziging op false als gebruikers hun bestaande wachtwoorden moeten behouden en schakel wachtwoordaanmelding in op de Login-authenticatiemethode. U kunt de import in een testomgeving uitproberen en aanmelden met het oorspronkelijke wachtwoord van een geïmporteerde gebruiker.
Zie Migreren van Auth0 naar FoxIDs voor export, het koppelen van wachtwoordhashes aan gebruikers, ondersteunde hashformaten en accountkoppeling.
Seed tool downloaden en configureren
Download eerst het FoxIDs.SeedTool-x.x.x-win-x64.zip bestand voor Windows of het FoxIDs.SeedTool-x.x.x-linux-x64.zip bestand voor Linux van de FoxIDs release en pak de seed tool uit.
De seed tool wordt geconfigureerd in het appsettings.json bestand.
Toegang om gebruikers te uploaden wordt verleend in uw master omgeving.
Maak een seed tool OAuth 2.0 client aan in de FoxIDs Control Client:
Dit geeft de seed tool volledige toegang tot uw tenant, voor least privileges zie Control API-toegangsrechten.
- Log in op uw tenant (in self-hosted de hoofdtenant)
- Selecteer de master omgeving (in de bovenste midden omgeving selector)
- Selecteer het tabblad Applications
- Klik op New Application
- Klik op Backend Application
- Selecteer Show advanced
- Voeg een Name toe, bijv.
Seed tool - Wijzig de Client ID naar
foxids_seed - Klik op Register
- Onthoud de Authority.
- Onthoud de Client secret.
- Klik op Close
- Klik op de applicatie in de lijst om deze te openen
- In de sectie Resource and scopes
- Verwijder het vinkje bij Default resource 'foxids_seed' for the application itself
- Klik op Add Resource and scope en voeg de resource
foxids_control_apitoe - Klik vervolgens op Add Scope en voeg de scope
foxids:tenanttoe
- Selecteer Show advanced
- In de sectie Issue claims
- Klik op Add Claim en voeg de claim
roletoe - Klik vervolgens op Add Value en voeg de claimwaarde
foxids:tenanttoe
- Klik op Add Claim en voeg de claim
- Klik op Update

Voeg uw FoxIDs Control API endpoint en tenant en environment en de seed tool Authority en Client secret en het CSV bestandspad toe aan de seed tool configuratie.
"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 uitvoeren en gebruikers uploaden
- Start een Command Prompt
- Voer de seed tool uit met
SeedTool.exe - Klik op
Uom het uploaden van gebruikers te starten
Het uploaden kan even duren afhankelijk van het aantal gebruikers.
De Seed Tool rapporteert het aantal geslaagde en mislukte bewerkingen en de geïmporteerde gebruikers zijn beschikbaar in FoxIDs Control. U kunt een upload met een klein CSV-bestand in een testomgeving uitproberen en de resulterende gebruikers daar bekijken. Bulkupload kan bestaande gebruikers en hun inloggegevens vervangen; controleer vóór upload op identificatieconflicten en stem een gedeeltelijke upload af voordat u opnieuw probeert.