メインコンテンツへスキップ
ユーザーファイルには、ユーザーの情報をJSON形式の配列として含める必要があります。
一括インポートでのファイルサイズは、500 KBが上限です。データがこのサイズを上回る場合には、複数のインポートを開始する必要があります。

ユーザーのJSONスキーマ

以下のJSONスキーマは有効なユーザーを記述しています。
JSONスキーマの詳細については、jsonschema.orgをご覧ください。

プロパティ

ユーザーは以下のプロパティを使用してインポートすることができます。
プロパティタイプ説明インポート中のアップサート?
app_metadataオブジェクトアプリケーションの主要な機能またはユーザーがアクセスできるものに影響を与えるデータ。app_metadataに保管されているデータをユーザーは編集できません。これには、サポートプラン、ロール、アクセスグループなどが含まれます。Yes
blockedブール値ユーザーがブロックされているかどうかを示します。No
email文字列ユーザーのメールアドレス。No
email_verifiedブール値ユーザーがメールアドレスを検証したかどうかを示します。デフォルトでemailがアップサートにより更新され、email_verifiedでない場合はfalseに設定されます。Yes
family_name文字列ユーザーの姓。Yes
given_name文字列ユーザーの名。Yes
name文字列ユーザーのフルネーム。Yes
nickname文字列ユーザーのニックネーム。Yes
picture文字列ユーザーのプロファイル画像を指すURLYes
user_id文字列ユーザーの一意の識別子。これは、接続戦略によりプリペンドされます。No
user_metadataオブジェクト勤務先住所、自宅住所、ユーザーのお気に入りなど、ユーザーのアクセスに影響を与えないデータ。Yes
username文字列ユーザーのユーザー名。No
password_hash文字列ユーザーの接続のためにハッシュ化されたパスワード。ユーザーが作成されると、Auth0は[bcrypt](https://auth0.com/blog/hashing-in-action-understanding-bcrypt/)を使用してパスワードを保護します。ハッシュ化されたパスワードをインポートすることで、ユーザーはパスワードを保持できるようになるため、スムーズなエクスペリエンスを提供できます。互換性のあるパスワードは、bcrypt 2a2aまたは2b2bを使ってハッシュ化し、saltRoundsを10回繰り返したものでなければなりません。このプロパティはユーザーが最初にインポートされたときのみ提供され、後で更新できません。No
custom_password_hashオブジェクトユーザーのパスワードハッシュを提供するより一般的な方法。これは、ユーザーのパスワードハッシュが他のアルゴリズムで作成された場合に、password_hashフィールドの代わりに使用できます。ユーザーが最初にインポートされたcustom_password_hashを使ってログインしなかった場合、一括インポートの処理中にcustom_password_hashを更新できます。Yes
mfa_factors配列このユーザーを認証するために使用できるMFA要素No
app_metadatauser_metadataの詳細については、「ユーザープロファイルでのメタデータの使い方」をお読みください。

アプリメタデータ

user.app_metadataオブジェクトには、以下のいずれのプロパティも含めてはいけません
  • __tenant
  • _id
  • blocked
  • clientID
  • created_at
  • email_verified
  • email
  • globalClientID
  • global_client_id
  • identities
  • lastIP
  • lastLogin
  • loginsCount
  • metadata
  • multifactor_last_modified
  • multifactor
  • updated_at
  • user_id

カスタムパスワードハッシュ

user.custom_password_hashオブジェクトは、ユーザーのパスワードハッシュが他のアルゴリズムで作成された場合に、user.password_hashプロパティの代わりに使用できます。このフィールドとpassword_hashが相互に排他的であることに注意してください。 user.custom_password_hashオブジェクトは以下のプロパティに対応しています。
プロパティタイプ説明
algorithmstringパスワードをハッシュするために使用されるアルゴリズム。以下のうちの1つである必要があります:
  • argon2
  • bcrypt
  • hmac
  • ldap
  • md4
  • md5
  • sha1
  • sha256
  • sha512
  • pbkdf2
  • scrypt
hashオブジェクト
hash.value文字列パスワードハッシュ。
hash.encoding文字列提供されたハッシュのエンコーディング。以下のうちの1つである必要があります:
  • base64
  • hex
  • utf8
16進数の大文字と小文字のバリエーションと、URLエンコードされたbase64がサポートされています。
hash.digest文字列HMACハッシュを生成するために使用されるアルゴリズム。以下のうちの1つである必要があります:
  • md4
  • md5
  • ripemd160
  • sha1
  • sha224
  • sha256
  • sha384
  • sha512
  • whirlpool
hash.keyオブジェクトHMACハッシュを生成するために使用される鍵。
hash.key.value文字列鍵値。
hash.key.encoding文字列鍵エンコーディング。以下のうちの1つである必要があります:
  • base64
  • hex
  • utf8
デフォルトで、hash.key.encodingutf8です。
saltobject
salt.value文字列ハッシュを生成するために使用されるソルト値。
salt.encoding文字列提供されたソルトのエンコーディング。以下のうちの1つである必要があります:
  • base64
  • hex
  • utf8
16進数の大文字と小文字のバリエーションと、URLエンコードされたbase64がサポートされています。デフォルトで、salt.encodingutf8です。
salt.position文字列ハッシュが計算されたときのソルトの位置。デフォルトで、salt.positionprefixです。
password.encoding文字列ハッシュを生成するために使用されるパスワードのエンコーディング。以下のうちの1つである必要があります:
  • ascii
  • utf8
  • utf16le
  • ucs2
  • latin1
  • binary
ログイン時、ユーザーが提供したパスワードは、提供されたハッシュと照合される前に、password.encodingからトランスコードされます。たとえば、ハッシュがucs2エンコードされた文字列から生成された場合は、次のように設定します: "encoding": "ucs2"
keylen整数スクリプトハッシュのバイト単位での望ましい鍵長。ゼロよりも大きい整数でなければなりません。
algorithmscryptに設定されている場合、このアルゴリズムが必要です。
cost整数スクリプトハッシュに使用されるCPU/メモリーコストパラメーター。1より大きい2の冪でなければなりません。デフォルトで、costは16384です。
algorithmscryptに設定されている場合のみ、このアルゴリズムが使用されます。
blockSize整数スクリプトハッシュに使用されるブロックサイズパラメーター。正の整数でなければなりません。デフォルトで、blockSizeは8です。
algorithmscryptに設定されている場合のみ、このアルゴリズムが使用されます。
parallelization整数スクリプトハッシュに使用される並列化パラメーター。正の整数でなければなりません。デフォルトで、parallelizationは1です。
algorithmscryptに設定されている場合のみ、このアルゴリズムが使用されます。

カスタムパスワードハッシュを更新する

ユーザーが最初にインポートされたcustom_password_hashを使ってログインしなかった場合、一括インポートの処理中にcustom_password_hashを更新できます。たとえば、以下のJSONは、custom_password_hashに異なる値を指定して、/api/v2/jobs/users-importsエンドポイントに2回送信することができます。2回目の送信では、upsertフラグをtrueに設定します。
browserling.comでBcryptパスワードジェネレーターを使用して、bcryptパスワードハッシュを生成することができます。

対応しているハッシュアルゴリズム

Auth0は現在、以下のユーザーパスワードハッシュのインポートに対応しています。 custom_password_hashを提供する際には、以下のセクションを考慮してください。

Argon2

algorithmargon2に設定されている場合には:
  • hash.encodingutf8でなければなりません。
  • hash.saltは使用できません。
  • hash.valueは、GitHubのP-H-C / phc-string-formatで指定されているように、PHC文字列形式でなければなりませんまた、GitHubのAuth0 / magicで指定されている要件に従う必要があります。
  • hash.valueにはbase64エンコードされたソルトが含まれなければなりません(PHCのドキュメントで指定されています)。

bcrypt

algorithmbcryptに設定されている場合には:
  • hash.encodingutf8でなければなりません。
  • hash.saltは使用できません。
  • hash.valueには以下の1つのプレフィックスが含まれなければなりません。
    • $2a$
    • $2b$
    • $2y$
    $2$$sha1$$2x$など、他のプレフィックスには現在対応していません。
たとえば、次はコストパラメーターの値を10に指定して「hello」の文字列から生成したものです: $2b$10$nFguVi9LsCAcvTZFKQlRKeLVydo8ETv483lkNsSFI/Wl1Rz1Ypo1K algorithmhmacに設定されている場合には: algorithmldapに設定されている場合には:

HMAC

algorithmmd4md5sha1sha256、またはsha512に設定されている場合には:
  • hash.encodinghexまたはbase64でなければなりません。
  • hash.digestは必須で、以下のいずれかでなければなりません。
    • md4
    • md5
    • ripemd160
    • sha1
    • sha224
    • sha256
    • sha384
    • sha512
    • whirlpool
  • hash.key.valueは必須です。
  • hash.key.encodingbase64hex、またはutf8でなければなりません。

LDAP

algorithmpbkdf2に設定されている場合には:
  • hash.encodingutf8でなければなりません。
  • saltは使用できません。
  • hash.valueでは、IETF Datatrackerに掲載のRFC-2307セクション5.3で説明されている形式を厳守する必要があります。
  • スキーマはmd5|smd5|sha*|ssha*のいずれかになります。詳細についてはこちらを参照してください。
  • cryptスキーマは、動作がシステムや実装に依存するため、非対応 であることに注意してください。詳細については、Open LDAPが提供するAdmin Guideの「4.4.2.CRYPT password storage scheme」をお読みください。

MDおよびSHA

algorithmscryptに設定されている場合には:
  • hash.encodinghexまたはbase64でなければなりません。

PBKDF2

user.mfa_factors配列には、ユーザーの登録が含まれます。詳細については、「Auth0での多要素認証」をお読みください。登録をインポートすると、インポート後にユーザーがMFAに再登録する必要がなくなります。以下の登録タイプに対応しています。
  • hash.encodingutf8でなければなりません。
  • hash.saltは使用できません。
  • hash.valueは、GitHubのP-H-C / phc-string-formatで指定されているように、PHC文字列形式でなければなりません
  • hash.valueにはB64エンコードされたソルトが含まれなければなりません(埋め込み文字「=」を省略したbase64で、PHCのドキュメントで指定されています)。
  • hash.valueには、i(iterations)とl(keylen)パラメーターが含まれなければなりません。これらのパラメーターを省略すると、デフォルトのi=100000およびl=64が使用されます。
  • idpbkdf2-<digest>形式(pbkdf2-sha512pbkdf2-md5など)でなければなりません。以下のダイジェストに対応しています。
    • RSA-MD4
    • RSA-MD5
    • RSA-MDC2
    • RSA-RIPEMD160
    • RSA-SHA1
    • RSA-SHA1-2
    • RSA-SHA224
    • RSA-SHA256
    • RSA-SHA384
    • RSA-SHA512
    • md4
    • md4WithRSAEncryption
    • md5
    • md5WithRSAEncryption
    • mdc2
    • mdc2WithRSA
    • ripemd
    • ripemd160
    • ripemd160WithRSA
    • rmd160
    • sha1
    • sha1WithRSAEncryption
    • sha224
    • sha224WithRSAEncryption
    • sha256
    • sha256WithRSAEncryption
    • sha384
    • sha384WithRSAEncryption
    • sha512
    • sha512WithRSAEncryption
    • ssl3-md5
    • ssl3-sha1
    • whirlpool

scrypt

プロパティタイプ説明
emailオブジェクト
email.value文字列MFAのメールアドレス。
phoneオブジェクト
phone.value文字列SMS MFAの電話番号。国コードがあり、先頭が+でなければなりません。例:"+12125550001"
totpオブジェクト
totp.secret文字列Authenticatorアプリ(Google Authenticator、Microsoft Authenticator、Authy、1Password, LastPass)を使ったMFA認証のOTPシークレット。パッドなしのBase32エンコーディングで指定する必要があります。例: "JBTWY3DPEHPK3PNP"
  • hash.encodinghexまたはbase64でなければなりません。
  • keylenパラメーターは必須です。
  • costパラメーターを使用することができます。指定しない場合には、デフォルトの16384が使用されます。
  • blockSizeパラメーターを使用することができます。指定しない場合には、デフォルトの8が使用されます。
  • parallelizationパラメーターを使用することができます。指定しない場合には、デフォルトの1が使用されます。

MFA要素

以下の内容のあるファイルが有効です。

基本例

以下は、提供されたハッシュのあるユーザーの例です。

カスタムパスワードハッシュの例

ご推察のとおり、user.mfa_factors配列は、ユーザーのMFA登録を提供できるようにします。以下の登録タイプに対応しています。 以下は、MFA要素のあるユーザーの例です。

MFA要素の例

  • 電話:SMSベースの検証に使用されます。
  • TOTP:MFAタイプのアプリ(Google Authenticator、Microsoft Authenticator、Authy、1Password、LastPass)で使用するOTPシークレットです。
  • メール:メールベースの検証に使用されます。
以下は、MFA要素のあるユーザーの例です。

もっと詳しく