Subir muchos usuarios

Aprovisionar tus usuarios en un entorno como usuarios internos, con o sin contraseña:

  • Puedes subir los usuarios con su contraseña, si conoces las contraseñas de los usuarios.
  • De lo contrario, puedes subir los usuarios sin contraseña y luego se les pide establecer una contraseña con un código de confirmación por email o SMS. Requiere que los usuarios tengan email o número de teléfono.

Los usuarios se cargan en masa en un entorno con hasta 1.000 usuarios por solicitud cuando se crean sin contraseñas y hasta 100 usuarios por solicitud cuando se incluyen contraseñas. Esto admite cargas múltiples, lo que permite importar millones de usuarios. Puedes usar directamente la FoxIDs Control API o usar el seed tool.

Ejemplo de tiempo de carga para 50.000 usuarios

Escenario Usuarios Tamaño de lote Tiempo total aprox.
Sin contraseñas 50.000 1.000 ~2 minutos
Con contraseñas 50.000 100 ~2 horas
Hash de contraseñas pre calculado en cliente 50.000 1.000 ~5 minutos

Los tiempos son aproximados y dependen de la máquina cliente, la red y la infraestructura.

Subir usuarios con contraseñas tarda más porque se debe calcular un hash de contraseña para cada usuario, y esta operación es intencionalmente costosa por seguridad.
El tiempo de carga puede mejorarse calculando los hashes de contraseña en el cliente antes de subir los usuarios.

Subir con seed tool

El seed tool lee usuarios de un archivo CSV y los sube al entorno configurado. El seed tool también admite la eliminación masiva de usuarios.

Por defecto, el seed tool pre calcula los hashes de contraseña en el cliente durante la carga para reducir el tiempo de procesamiento en el servidor.

Archivo CSV

Los elementos del archivo CSV están separados por ; y el texto puede ir opcionalmente entre comillas.

Puedes encontrar archivos CSV de ejemplo aquí: FoxIDs.SeedTool/user_upload_csv_files
(Por ejemplo, ver caracteres UTF-8 en claims en el archivo password-claims-3-test-users.csv que demuestra compatibilidad con varios idiomas / caracteres extendidos.)

La primera línea del archivo CSV son los encabezados sensibles a mayúsculas/minúsculas. Puedes elegir usar todos los encabezados o un subconjunto y cambiar el orden de los encabezados.
Los encabezados:

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

El número de encabezados y elementos en cada línea debe coincidir.

Este ejemplo de archivo CSV usa los encabezados Email y SetPasswordEmail para subir usuarios sin contraseñas. El usuario debe establecer una contraseña con confirmación por email en el primer inicio de sesión. Luego el email se marca como verificado.

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

Este ejemplo de archivo CSV incluye un nombre de usuario y establece el email y el número de teléfono como verificados. Las contraseñas se establecen con un código de confirmación por email o 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

Este ejemplo de archivo CSV usa todos los encabezados y sube usuarios con contraseñas y claims. El último usuario se sube como usuario deshabilitado.

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

Si pre calculas los hashes de contraseña en el cliente, usa las columnas PasswordHashAlgorithm, PasswordHash y PasswordHashSalt y deja Password vacío (o elimínalo). Puedes conservar la marca de tiempo original de cambio de contraseña con PasswordLastChanged (segundos Unix). Cuando se proporciona una contraseña o un hash sin PasswordLastChanged, la carga marca la hora actual.

Debes agregar contraseñas y claims con la notación ;"";. Si una contraseña contiene el símbolo " se escapa, por ejemplo la contraseña My"Password se convierte en ;"My""Password";

Los claims se agregan con una estructura JSON sin saltos de línea y los símbolos " se escapan.

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

Descargar y configurar el seed tool

Primero descarga el archivo FoxIDs.SeedTool-x.x.x-win-x64.zip para Windows o FoxIDs.SeedTool-x.x.x-linux-x64.zip para Linux desde la versión de FoxIDs y descomprime el seed tool.

El seed tool se configura en el archivo appsettings.json.

El acceso para subir usuarios se concede en tu entorno master.

Crea un cliente OAuth 2.0 del seed tool en el FoxIDs Control Client:

Esto otorgará al seed tool acceso completo a tu tenant; para el menor privilegio, consulta API access rights.

  1. Inicia sesión en tu tenant (en auto hospedado el tenant main)
  2. Selecciona el entorno master (en el selector de entorno en la parte superior central)
  3. Selecciona la pestaña Applications
  4. Haz clic en New Application
  5. Haz clic en Backend Application
    1. Selecciona Show advanced
    2. Añade un Name por ejemplo Seed tool
    3. Cambia el Client ID a foxids_seed
    4. Haz clic en Register
    5. Recuerda el Authority.
    6. Recuerda el Client secret.
    7. Haz clic en Close
  6. Haz clic en la aplicación en la lista para abrirla
  7. En la sección Resource and scopes
    1. Quita la marca de Default resource 'foxids_seed' for the application itself
    2. Haz clic en Add Resource and scope y añade el recurso foxids_control_api
    3. Luego haz clic en Add Scope y añade el scope foxids:tenant
  8. Selecciona Show advanced
  9. En la sección Issue claims
    1. Haz clic en Add Claim y añade el claim role
    2. Luego haz clic en Add Value y añade el valor del claim foxids:tenant
  10. Haz clic en Update

FoxIDs Control Client - master seed tool client

Agrega tu endpoint de FoxIDs Control API y el tenant y el environment y el Authority y el Client secret del seed tool y la ruta del archivo CSV a la configuración del seed tool.

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

Ejecutar el seed tool y subir los usuarios

  1. Inicia un símbolo del sistema
  2. Ejecuta el seed tool con SeedTool.exe
  3. Pulsa U para iniciar la carga de usuarios

La carga puede tardar un tiempo según el número de usuarios.

Tu privacidad

Usamos cookies para mejorar tu experiencia en nuestros sitios web. Haz clic en «Aceptar todas las cookies» para aceptar su uso. Para rechazar cookies no esenciales, haz clic en «Solo cookies necesarias».

Visita nuestra política de privacidad para saber más