La taille maximale du fichier pour une importation groupée est de 500KB. Vous devrez lancer plusieurs importations si vos données dépassent cette limite.
Schéma JSON d’un utilisateur
Propriétés
| Propriété | Type | Description | Upsert pendant l’importation ? |
|---|---|---|---|
app_metadata | object | Données pouvant affecter les fonctionnalités de base de l’application ou les éléments auxquels l’utilisateur peut accéder. Les données stockées dans app_metadata ne peuvent pas être modifiées par les utilisateurs. Cela peut inclure, par exemple, des forfaits de soutien, des rôles ou des groupes d’accès. | Oui |
blocked | boolean | Indique si l’utilisateur a été bloqué. | Non |
email | string | L’adresse de courriel de l’utilisateur. | Non |
email_verified | boolean | Indique si l’utilisateur a vérifié son adresse de courriel. La valeur par défaut est false si email est mis à jour par upsert, mais pas email_verified. | Oui |
family_name | string | Le nom de famille de l’utilisateur. | Oui |
given_name | string | Le prénom de l’utilisateur. | Oui |
name | string | Le nom complet de l’utilisateur. | Oui |
nickname | string | Le surnom de l’utilisateur. | Oui |
picture | string | URL pointant vers l’image de profil de l’utilisateur. | Oui |
user_id | string | L’identifiant unique de l’utilisateur. Il sera préfixé par la stratégie de connexion. | Non |
user_metadata | object | Données qui n’ont pas d’incidence sur les éléments auxquels les utilisateurs peuvent ou non accéder, comme l’adresse professionnelle, l’adresse du domicile ou les préférences de l’utilisateur. | Oui |
username | string | Le nom d’utilisateur de l’utilisateur. | Non |
password_hash | string | Mot de passe haché pour la connexion de l’utilisateur. Lorsqu’un utilisateur est créé, Auth0 utilise bcrypt pour sécuriser le mot de passe. L’importation de mots de passe hachés permet aux utilisateurs de conserver leurs mots de passe, pour une expérience plus fluide. Les mots de passe compatibles doivent être hachés à l’aide de bcrypt ou et utiliser 10 saltRounds. Cette propriété ne peut être fournie que lors de la première importation de l’utilisateur et ne peut pas être mise à jour par la suite. | Non |
custom_password_hash | object | Une façon plus générique de fournir le hachage du mot de passe de l’utilisateur. Cette propriété peut être utilisée à la place du champ password_hash lorsque le hachage du mot de passe de l’utilisateur a été créé avec un autre algorithme. Pendant le processus d’importation groupée, vous pouvez mettre à jour custom_password_hash si l’utilisateur ne s’est pas connecté à l’aide du custom_password_hash importé initialement. | Oui |
mfa_factors | array | Les facteurs MFA qui peuvent être utilisés pour authentifier cet utilisateur. | Non |
app_metadata et user_metadata, consultez Comprendre le fonctionnement des métadonnées dans les profils utilisateur.
Métadonnées de l’application
user.app_metadata ne doit pas contenir les propriétés suivantes :
__tenant_idblockedclientIDcreated_atemail_verifiedemailglobalClientIDglobal_client_ididentitieslastIPlastLoginloginsCountmetadatamultifactor_last_modifiedmultifactorupdated_atuser_id
Hachage personnalisé du mot de passe
user.custom_password_hash peut être utilisé à la place de la propriété user.password_hash lorsque le hachage du mot de passe de l’utilisateur a été créé avec un autre algorithme. Notez que ce champ et password_hash sont mutuellement exclusifs.
L’objet user.custom_password_hash possède les propriétés suivantes :
| Propriété | Type | Description |
|---|---|---|
algorithm | chaîne | L’algorithme utilisé pour hacher le mot de passe. Doit être l’un des suivants :
|
hash | objet | |
hash.value | chaîne | Le hachage du mot de passe. |
hash.encoding | chaîne | L’encodage du hachage fourni. Doit être l’un des suivants :
|
hash.digest | chaîne | L’algorithme utilisé pour générer le hachage HMAC. Doit être l’un des suivants :
|
hash.key | objet | La clé utilisée pour générer le hachage HMAC. |
hash.key.value | chaîne | La valeur de la clé. |
hash.key.encoding | chaîne | L’encodage de la clé. Doit être l’un des suivants :
hash.key.encoding est utf8. |
salt | objet | |
salt.value | chaîne | La valeur du sel utilisée pour générer le hachage. |
salt.encoding | chaîne | L’encodage du sel fourni. Doit être l’un des suivants :
salt.encoding est utf8. |
salt.position | chaîne | La position du sel au moment du calcul du hachage. Par défaut, salt.position est prefix. |
password.encoding | chaîne | L’encodage du mot de passe utilisé pour générer le hachage. Doit être l’un des suivants :
password.encoding avant d’être vérifié par rapport au hachage fourni. Par exemple, si votre hachage a été généré à partir d’une chaîne encodée en ucs2, vous devez définir : "encoding": "ucs2" |
keylen | entier | Longueur de clé souhaitée, en octets, pour le hachage scrypt. Doit être un entier supérieur à zéro. Ce paramètre est requis lorsque algorithm est défini sur scrypt. |
cost | entier | Paramètre de coût CPU/mémoire utilisé pour le hachage scrypt. Doit être une puissance de deux supérieure à un. Par défaut, cost est 16384.Ce paramètre est utilisé uniquement lorsque algorithm est défini sur scrypt. |
blockSize | entier | Paramètre de taille de bloc utilisé pour le hachage scrypt. Doit être un entier positif. Par défaut, blockSize est 8.Ce paramètre est utilisé uniquement lorsque algorithm est défini sur scrypt. |
parallelization | entier | Paramètre de parallélisation utilisé pour le hachage scrypt. Doit être un entier positif. Par défaut, parallelization est 1.Ce paramètre est utilisé uniquement lorsque algorithm est défini sur scrypt. |
Mettre à jour le hachage personnalisé du mot de passe
custom_password_hash si l’utilisateur ne s’est pas connecté à l’aide du custom_password_hash importé initialement. Par exemple, vous pouvez soumettre le JSON ci-dessous deux fois à l’endpoint /api/v2/jobs/users-imports avec des valeurs différentes pour custom_password_hash. Lors du deuxième envoi, définissez l’indicateur upsert sur true.
Algorithmes de hachage pris en charge
custom_password_hash.
Argon2
algorithm est défini à argon2 :
hash.encodingdoit êtreutf8.hash.saltn’est pas autorisé.hash.valuedoit être au format de chaîne PHC, comme indiqué dans P-H-C / phc-string-format sur GitHub. Il doit également respecter les exigences précisées dans Auth0 / magic sur GitHub.hash.valuedoit inclure le sel encodé en base64 (comme indiqué dans la documentationPHC).
bcrypt
algorithm est défini sur bcrypt :
-
hash.encodingdoit êtreutf8. -
hash.saltest autorisé en combinaison avec l’encodage et la position du sel. -
hash.valuedoit inclure l’un de ces préfixes :$2a$$2b$$2y$
$2$,$sha1$et$2x$, ne sont pas pris en charge pour le moment.
hello à l’aide d’un paramètre de coût de 10 :
$2b$10$nFguVi9LsCAcvTZFKQlRKeLVydo8ETv483lkNsSFI/Wl1Rz1Ypo1K
L’algorithme bcrypt traite au maximum 72 octets en entrée lors du calcul des hachages de mot de passe ou des comparaisons, et la longueur de salt.value compte dans cette limite de 72 octets. Toute entrée qui dépasse cette limite est tronquée; par exemple, si le sel consomme 10 octets, la longueur maximale du mot de passe pour le hachage ou la comparaison est de 62 octets.
Les mots de passe qui dépassent cette limite réduite sont tronqués, ce qui peut affaiblir la force du mot de passe ou provoquer des collisions de hachage. Validez toujours la longueur des mots de passe avant le hachage.
HMAC
algorithm est défini à hmac :
-
hash.encodingdoit êtrehexoubase64. -
hash.digestest requis et doit correspondre à l’une des valeurs suivantes :md4md5ripemd160sha1sha224sha256sha384sha512whirlpool
-
hash.key.valueest requis. -
hash.key.encodingdoit êtrebase64,hexouutf8.
LDAP
algorithm est défini à ldap :
hash.encodingdoit êtreutf8.saltn’est pas autorisé.hash.valuedoit respecter le format indiqué dans la section 5.3 de la RFC-2307 sur IETF Datatracker.- Le schéma doit être l’un des suivants :
md5|smd5|sha*|ssha*; consultez ce document pour en savoir plus. - Notez que le schéma crypt n’est pas pris en charge en raison d’un comportement qui dépend du système ou de l’implémentation. Pour en savoir plus, consultez Open LDAP Admin Guide - 14.4.2. CRYPT password storage scheme.
MD ou SHA
algorithm est défini à md4, md5, sha1, sha256 ou sha512 :
hash.encodingdoit êtrehexoubase64.
PBKDF2
algorithm est défini à pbkdf2 :
-
hash.encodingdoit êtreutf8. -
hash.saltn’est pas permis. -
hash.valuedoit être au format de chaîne PHC, comme indiqué dans P-H-C / phc-string-format sur GitHub. -
hash.valuedoit inclure le sel encodé en B64 (base64 sans les caractères de remplissage=, comme indiqué dans la documentationPHC). -
hash.valuedevrait inclure les paramètresi(itérations) etl(longueur de clé). Si ces paramètres sont omis, les valeurs par défaut seronti=100000etl=64. -
L’
iddoit être au formatpbkdf2-<digest>(pbkdf2-sha512,pbkdf2-md5, etc.). Les condensés pris en charge sont :RSA-MD4RSA-MD5RSA-MDC2RSA-RIPEMD160RSA-SHA1RSA-SHA1-2RSA-SHA224RSA-SHA256RSA-SHA384RSA-SHA512md4md4WithRSAEncryptionmd5md5WithRSAEncryptionmdc2mdc2WithRSAripemdripemd160ripemd160WithRSArmd160sha1sha1WithRSAEncryptionsha224sha224WithRSAEncryptionsha256sha256WithRSAEncryptionsha384sha384WithRSAEncryptionsha512sha512WithRSAEncryptionssl3-md5ssl3-sha1whirlpool
scrypt
algorithm est défini sur scrypt :
hash.encodingdoit être soithex, soitbase64.- Le paramètre
keylenest obligatoire. - Le paramètre
costpeut être spécifié; sinon, la valeur par défaut sera 16384. - Le paramètre
blockSizepeut être spécifié; sinon, la valeur par défaut sera 8. - Le paramètre
parallelizationpeut être spécifié; sinon, la valeur par défaut sera 1.
Facteurs MFA
user.mfa_factors contient les inscriptions de l’utilisateur. Pour en savoir plus, consultez l’authentification multifacteur dans Auth0. L’importation des inscriptions évite aux utilisateurs d’avoir à se réinscrire à l’authentification multifacteur après l’importation. Les types d’inscription pris en charge sont :
| Propriété | Type | Description |
|---|---|---|
email | object | |
email.value | string | L’adresse de courriel utilisée pour l’authentification MFA. |
phone | object | |
phone.value | string | Le numéro de téléphone utilisé pour l’authentification MFA par SMS. Il doit inclure un code de pays et commencer par +, par exemple : "+12125550001" |
totp | object | |
totp.secret | string | Le secret OTP utilisé pour l’authentification MFA avec des applications d’authentificateur (Google Authenticator, Microsoft Authenticator, Authy, 1Password, LastPass). Il doit être encodé en Base32 sans remplissage, par exemple : "JBTWY3DPEHPK3PNP" |
Exemples
Exemple de base
Exemples de hachages de mots de passe personnalisés
Exemples de facteurs MFA
user.mfa_factors vous permet d’indiquer les inscriptions MFA de l’utilisateur. Les types d’inscription pris en charge sont :
- Téléphone : utilisé pour la vérification par SMS.
- TOTP : secret OTP à utiliser avec des applications d’authentification MFA (Google Authenticator, Microsoft Authenticator, Authy, 1Password, LastPass).
- Courriel : utilisé pour la vérification par courriel.