Last opp mange brukere

Bruk FoxIDs Seed Tool til å laste brukere fra en CSV-fil inn i et FoxIDs miljø som interne brukere. Hver bruker kan lastes opp med:

  • Intet passord, for passordfri pålogging med en engangskode via e-post eller SMS.
  • Intet passord og et krav om å velge et ved første pålogging, bekreftet via e-post eller SMS.
  • Et kjent klartekstpassord som Seed Tool som standard hasher før opplasting.
  • En forhåndsberegnet FoxIDs passordhash med separat salt.
  • En Auth0 bcrypt passordhash som lar brukeren beholde eksisterende passord.

Control API godtar opptil 1 000 brukere per forespørsel, hvorav høyst 100 kan inneholde klartekstpassord. Forhåndsberegnede hasher teller mot grensen på 1 000 brukere. Seed Tool bruker grupper på opptil 1 000 brukere med standard hashing på klientsiden. Større filer lastes opp i flere grupper. Du kan også bruke Control APIs brukeroperasjoner direkte.

Eksempel opplastingstid for 50.000 brukere

Scenario Brukere Batch størrelse Ca. total tid
Uten passord 50.000 1.000 ~2 minutter
Med passord 50.000 100 ~2 timer
Passord hashes forhåndsberegnet på klient 50.000 1.000 ~5 minutter

Tider er omtrentlige og avhenger av klientmaskin, nettverk og infrastruktur.

Opplasting av brukere med passord tar lengre tid fordi en password hash må beregnes for hver bruker, og denne operasjonen er med vilje tidskrevende av sikkerhetshensyn. Opplastingstid kan forbedres ved å beregne password hashes på klienten før opplasting av brukerne.

Last opp med seed tool

Seed Tool i tools/FoxIDs.SeedTool leser en CSV-fil og masselaster brukerne opp til det konfigurerte FoxIDs miljøet gjennom Control API. Angi filbanen i SeedSettings.UsersSvcPath og velg U for å laste opp. Verktøyet støtter også massesletting av brukere.

Som standard forhåndsberegner Seed Tool passordhasher for klartekstpassord før opplasting. Oppgitte FoxIDs eller bcrypt hasher lastes opp uendret når Password er tomt eller utelatt.

CSV fil

Lagre CSV-filen som UTF-8 med felt atskilt av ;. Tekst kan eventuelt stå i anførselstegn. Parseren deler ved semikolon, så felt kan ikke inneholde semikolon eller linjeskift, heller ikke inne i anførselstegn.

Du kan finne eksempel CSV filer her. (For eksempel se UTF 8 tegn i claims i filen password-claims-3-test-users.csv som demonstrerer multi language / extended character support.)

Første linje i CSV filen er case sensitive headers. Du kan velge å bruke alle headers eller et subset av headers og endre rekkefølgen på headers. Headers:

  • Email
  • Phone
  • Username
  • ConfirmAccount
  • EmailVerified
  • PhoneVerified
  • Password
  • PasswordHashAlgorithm
  • PasswordHash
  • PasswordHashSalt
  • ChangePassword
  • PasswordLastChanged
  • SetPasswordEmail
  • SetPasswordSms
  • DisableAccount
  • Claims
  • RequireMultiFactor

Antall headers og elementer i hver linje må matche.

Dette eksemplet laster opp en passordfri bruker. Utelat Password og alle passordhashkolonner, og la SetPasswordEmail og SetPasswordSms være false. Aktiver passordfri pålogging med tilsvarende e-post- eller SMS-leverandør. Bevar hver brukers kjente verifiseringsstatus.

Email;EmailVerified;SetPasswordEmail;SetPasswordSms
passwordless@example.com;true;false;false

Dette CSV-eksemplet bruker kolonneoverskriftene Email og SetPasswordEmail til å laste opp brukere som må velge et passord med e-postbekreftelse ved første pålogging. E post blir deretter markert som verifisert.

Email;SetPasswordEmail
u1@somedomain.test;true
u2@somedomain.test;true
u3@somedomain.test;true

Dette CSV-eksemplet inkluderer et brukernavn og markerer oppgitt e-postadresse og telefonnummer som verifisert. Passordene angis med en bekreftelseskode via e-post 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-eksemplet laster opp brukere med klartekstpassord og claims. Den siste brukeren lastes opp som deaktivert.

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 oppgir forhåndsberegnede passordhasher, bruker du kolonnene PasswordHashAlgorithm og PasswordHash og lar Password være tomt (eller fjerner det). Ta med PasswordHashSalt for P2HS512:10; utelat det for bcrypt, der hele hashstrengen inkluderer saltet. Se støttede passordimportformater. Du kan eventuelt bevare opprinnelig tidspunkt for passordendring med PasswordLastChanged (Unix-sekunder). Når et passord eller en hash oppgis uten PasswordLastChanged, registrerer opplastingen gjeldende tidspunkt.

Du bør legge til passord og claims med ;""; notasjonen. Hvis et passord inneholder " symbolet blir det escaped, for eksempel passordet My"Password som blir ;"My""Password";

Claims legges til med en JSON struktur uten linjeskift og " symbolene escapes.

[
  { "Claim": "role", "Values": ["admin", "user"] },
  { "Claim": "customer_id", "Values": ["1234"] }
]

Importer Auth0 bcrypt passordhasher

Konverter gjennomgåtte brukerdata fra Auth0 og tilhørende passordhasher til Seed Tools CSV-format. Legg hver fullstendige Auth0 passwordHash-verdi i PasswordHash, og sett PasswordHashAlgorithm til bcrypt. Utelat Password og PasswordHashSalt; bcrypt inkluderer saltet i hashstrengen.

Denne syntetiske testkontoen bruker for eksempel Auth0s format $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

Kildekodelageret inkluderer tools/FoxIDs.SeedTool/user_upload_csv_files/auth0-bcrypt-3-test-users.csv med syntetiske hasher med kostnad 10 og 12, hashfelt med og uten anførselstegn og en deaktivert konto. Testhashene bruker passordet QAZ!234wsx. Erstatt eksempeldataene med dine gjennomgåtte brukere og deres egne hasher før migreringen.

Sett UsersSvcPath til den konverterte CSV-filen, og kjør Seed Tool og velg U. La flaggene for passordoppsett og passordendring være false når brukerne skal beholde eksisterende passord, og aktiver passordpålogging på Login-autentiseringsmetoden. Du kan prøve importen i et testmiljø og logge på med en importert brukers opprinnelige passord.

Se Migrer fra Auth0 til FoxIDs for eksport, kobling av passordhasher til brukere, støttede hashformater og kontotilordning.

Last ned og konfigurer seed tool

Last først ned FoxIDs.SeedTool-x.x.x-win-x64.zip for Windows eller FoxIDs.SeedTool-x.x.x-linux-x64.zip for Linux fra FoxIDs release og pakk ut seed tool.

Seed tool konfigureres i appsettings.json filen.

Tilgang til å laste opp brukere gis i ditt master miljø.

Opprett en seed tool OAuth 2.0 klient i FoxIDs Control Client:

Dette vil gi seed tool full tilgang til din tenant, for least privileges se Control API-tilgangsrettigheter.

  1. Logg inn i din tenant (i self hosted den primære tenant)
  2. Velg master miljøet (i topp midt miljøvelgeren)
  3. Velg Applications fanen
  4. Klikk New Application
  5. Klikk Backend Application
    1. Velg Show advanced
    2. Legg til et Name f.eks. Seed tool
    3. Endre Client ID til foxids_seed
    4. Klikk Register
    5. Husk Authority.
    6. Husk Client secret.
    7. Klikk Close
  6. Klikk på applikasjonen i listen for å åpne den
  7. I seksjonen Resource and scopes
    1. Fjern hake fra Default resource 'foxids_seed' for the application itself
    2. Klikk Add Resource and scope og legg til resource foxids_control_api
    3. Klikk deretter Add Scope og legg til scope foxids:tenant
  8. Velg Show advanced
  9. I seksjonen Issue claims
    1. Klikk Add Claim og legg til claim role
    2. Klikk deretter Add Value og legg til claim verdien foxids:tenant
  10. Klikk Update

FoxIDs Control Client - master seed tool client

Legg til FoxIDs Control API endpoint og tenant og environment samt seed tool Authority og Client secret og CSV fil sti i seed tool konfigurasjonen.

"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"
}

Kjør seed tool og last opp brukerne

  1. Start en Command Prompt
  2. Kjør seed tool med SeedTool.exe
  3. Klikk U for å starte opplasting av brukere

Opplastingen kan ta en stund avhengig av antall brukere.

Seed Tool rapporterer antall vellykkede og mislykkede operasjoner, og de importerte brukerne er tilgjengelige i FoxIDs Control. Du kan prøve en opplasting med en liten CSV-fil i et testmiljø og undersøke brukerne der. Masseopplasting kan erstatte eksisterende brukere og påloggingsopplysningene deres; kontroller identifikatorkollisjoner før opplasting, og avstem eventuell delvis opplasting før du prøver igjen.