Upload mange brugere
Brug FoxIDs Seed Tool til at indlæse brugere fra en CSV-fil i et FoxIDs miljø som interne brugere. Hver bruger kan uploades med:
- Ingen adgangskode, til login uden adgangskode med en engangskode via e-mail eller SMS.
- Ingen adgangskode og et krav om at vælge en ved første login, bekræftet via e-mail eller SMS.
- En kendt adgangskode i klartekst, som Seed Tool som standard hasher før upload.
- En forudberegnet FoxIDs adgangskodehash og dens separate salt.
- En Auth0 bcrypt adgangskodehash, så brugeren kan beholde sin eksisterende adgangskode.
Control API accepterer op til 1.000 brugere pr. request, hvoraf højst 100 må indeholde adgangskoder i klartekst. Forudberegnede hashes tæller med i grænsen på 1.000 brugere. Seed Tool bruger batches på op til 1.000 brugere med sin standardindstilling for hashing på klienten. Større filer uploades i flere batches. Du kan også bruge Control API-operationerne til brugere direkte.
Eksempel upload tid for 50.000 brugere
| Scenarie | Brugere | Batch størrelse | Ca. samlet tid |
|---|---|---|---|
| Uden adgangskoder | 50.000 | 1.000 | ~2 minutter |
| Med adgangskoder | 50.000 | 100 | ~2 timer |
| Adgangskode hashes forudberegnet på klient | 50.000 | 1.000 | ~5 minutter |
Tiderne er omtrentlige og afhænger af klientmaskine, netværk og infrastruktur.
Upload af brugere med adgangskoder tager længere tid fordi en password hash skal beregnes for hver bruger, og denne operation er med vilje tidskrævende af sikkerhedshensyn. Upload tid kan forbedres ved at beregne password hashes på klienten før upload af brugerne.
Upload med Seed Tool
Seed Tool i tools/FoxIDs.SeedTool læser en CSV-fil og masseuploader dens brugere til det konfigurerede FoxIDs miljø gennem Control API. Sæt filstien i SeedSettings.UsersSvcPath, og vælg U for at uploade. Værktøjet understøtter også massesletning af brugere.
Som standard forudberegner Seed Tool adgangskodehashes for adgangskoder i klartekst før upload. Angivne FoxIDs eller bcrypt hashes uploades uændret, når
Passworder tomt eller udeladt.
CSV-fil
Gem CSV-filen som UTF-8 med felter adskilt af ;. Tekst kan eventuelt stå i anførselstegn. Parseren opdeler ved semikolon, så felter kan ikke indeholde semikolon eller linjeskift, heller ikke inde i anførselstegn.
Du kan finde eksempler på CSV-filer her. (Se f.eks. UTF-8-tegn i claims i filen password-claims-3-test-users.csv, som demonstrerer understøttelse af flere sprog og udvidede tegn.)
CSV-filens første linje indeholder kolonneoverskrifter, som skelner mellem store og små bogstaver. Du kan bruge alle overskrifter eller et udvalg og ændre deres rækkefølge. Kolonneoverskrifterne:
- Phone
- Username
- ConfirmAccount
- EmailVerified
- PhoneVerified
- Password
- PasswordHashAlgorithm
- PasswordHash
- PasswordHashSalt
- ChangePassword
- PasswordLastChanged
- SetPasswordEmail
- SetPasswordSms
- DisableAccount
- Claims
- RequireMultiFactor
Antallet af kolonneoverskrifter og felter i hver linje skal stemme overens.
Dette eksempel uploader en bruger uden adgangskode. Udelad Password og alle adgangskodehashkolonner, og lad SetPasswordEmail og SetPasswordSms være false. Aktivér login uden adgangskode med den tilhørende e-mail- eller SMS-udbyder. Bevar hver brugers kendte verificeringsstatus.
Email;EmailVerified;SetPasswordEmail;SetPasswordSms
passwordless@example.com;true;false;false
Dette CSV-eksempel bruger overskrifterne Email og SetPasswordEmail til at uploade brugere, der skal vælge en adgangskode med e-mailbekræftelse ved første login.
E-mailadressen markeres derefter som verificeret.
Email;SetPasswordEmail
u1@somedomain.test;true
u2@somedomain.test;true
u3@somedomain.test;true
Dette CSV-eksempel indeholder et brugernavn og markerer den angivne e-mailadresse og det angivne telefonnummer som verificerede. Adgangskoderne oprettes med en bekræftelseskode via e-mail eller 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
Dette CSV-eksempel uploader brugere med adgangskoder i klartekst og claims. Den sidste bruger uploades som deaktiveret.
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
Hvis du angiver forudberegnede adgangskodehashes, bruges kolonnerne PasswordHashAlgorithm og PasswordHash, mens Password efterlades tom (eller fjernes). Medtag PasswordHashSalt for P2HS512:10; udelad det for bcrypt, hvor hele hashstrengen indeholder saltet. Se de understøttede formater til import af adgangskoder. Du kan eventuelt bevare det oprindelige tidspunkt for adgangskodeændringen med PasswordLastChanged (Unix-sekunder). Når en adgangskode eller hash angives uden PasswordLastChanged, registrerer uploaden det aktuelle tidspunkt.
Adgangskoder og claims tilføjes med notationen ;"";. Hvis en adgangskode indeholder tegnet ", escapes det, f.eks. adgangskoden My"Password, som bliver til ;"My""Password";
Claims tilføjes som en JSON-struktur uden linjeskift, og tegnene " escapes.
[
{ "Claim": "role", "Values": ["admin", "user"] },
{ "Claim": "customer_id", "Values": ["1234"] }
]
Importér Auth0 bcrypt adgangskodehashes
Konvertér de gennemgåede Auth0 brugerdata og de tilhørende adgangskodehashes til Seed Tool CSV-formatet. Indsæt hver komplet Auth0 passwordHash værdi i PasswordHash, og sæt PasswordHashAlgorithm til bcrypt. Udelad Password og PasswordHashSalt; bcrypt indeholder saltet i hashstrengen.
Denne syntetiske testkonto bruger eksempelvis Auth0s $2b$10$ format:
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
Kilderepositoriet indeholder tools/FoxIDs.SeedTool/user_upload_csv_files/auth0-bcrypt-3-test-users.csv med syntetiske hashes med cost 10 og 12, hashfelter med og uden anførselstegn og en deaktiveret konto. Disse testhashes bruger adgangskoden QAZ!234wsx. Erstat eksempeldataene med dine gennemgåede brugere og deres egne hashes før migreringen.
Sæt UsersSvcPath til den konverterede CSV-fil, og kør derefter Seed Tool, og vælg U. Lad flagene for oprettelse og ændring af adgangskode være false, når brugerne skal beholde deres eksisterende adgangskoder, og aktivér login med adgangskode på Login autentificeringsmetoden. Du kan afprøve importen i et testmiljø og logge ind med en importeret brugers oprindelige adgangskode.
Se Migrer fra Auth0 til FoxIDs for eksport, matchning af adgangskodehashes med brugere, understøttede hashformater og kontotilknytning.
Download og konfigurer seed tool
Download først filen FoxIDs.SeedTool-x.x.x-win-x64.zip til Windows eller FoxIDs.SeedTool-x.x.x-linux-x64.zip til Linux fra FoxIDs release og pak seed tool ud.
Seed tool konfigureres i appsettings.json filen.
Adgang til at uploade brugere gives i dit master miljø.
Opret en seed tool OAuth 2.0 klient i FoxIDs Control Client:
Dette giver seed tool fuld adgang til din tenant, for least privileges se Control API-adgangsrettigheder.
- Login på din tenant (i self hosted den primære tenant)
- Vælg master miljøet (i top midt miljø selector)
- Vælg fanen Applications
- Klik New Application
- Klik Backend Application
- Vælg Show advanced
- Tilføj et Name f.eks.
Seed tool - Ændr Client ID til
foxids_seed - Klik Register
- Husk Authority.
- Husk Client secret.
- Klik Close
- Klik på applikationen i listen for at åbne den
- I sektionen Resource and scopes
- Fjern fluebenet fra Default resource 'foxids_seed' for the application itself
- Klik Add Resource and scope og tilføj resource
foxids_control_api - Klik derefter Add Scope og tilføj scope
foxids:tenant
- Vælg Show advanced
- I sektionen Issue claims
- Klik Add Claim og tilføj claim
role - Klik derefter Add Value og tilføj claim værdien
foxids:tenant
- Klik Add Claim og tilføj claim
- Klik Update

Tilføj din FoxIDs Control API endpoint og tenant og environment samt seed tool Authority og Client secret og CSV fil sti til seed tool konfigurationen.
"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"
}
Kør seed tool og upload brugerne
- Start en Command Prompt
- Kør seed tool med
SeedTool.exe - Klik
Ufor at starte upload af brugere
Upload kan tage et stykke tid afhængigt af antallet af brugere.
Seed Tool viser antallet af vellykkede og mislykkede importer, og de importerede brugere er tilgængelige i FoxIDs Control. Du kan prøve en upload med en lille CSV-fil i et testmiljø og gennemgå de oprettede brugere der. Masseupload kan erstatte eksisterende brugere og deres legitimationsoplysninger; kontrollér sammenfald mellem identifikatorer før upload, og afstem en delvis upload, før den forsøges igen.