Skip to main content
既存のユーザーデータを Auth0 のデータベース接続に一括インポートできます。これは、既存のデータベースやサービスから Auth0 へユーザーを移行する際に便利です。 ユーザーデータを一括インポートするには、まず Auth0 が想定する JSON 形式のユーザーデータファイルを作成し、次に Auth0 Dashboard または Management API を使用してそのデータをインポートするジョブを開始します。

前提条件

1. ユーザーデータファイルを作成する

まず、ユーザーデータ JSON スキーマおよびプロパティリファレンスで定義されている構造に従って、既存のユーザーデータを Auth0 にインポートするための JSON 形式に整えます。 ユーザーデータファイルを作成する際は、以下の点を参考にしてください。
  • 一括インポート のファイルサイズ上限は 500KB です。データがこの上限を超える場合は、ユーザーデータを複数の小さなファイルに分割し、複数の ジョブ に分けてアップロードする必要があります。 目安として、ユーザーあたりのメタデータ field が 10 未満のユーザー約 1,000 件であれば、通常はファイルサイズ上限内に収まります。
  • Auth0 ユーザーデータエクスポートを利用する場合:
    • 一括インポート は JSON 形式をサポートしていますが、Auth0 で生成されるユーザーエクスポートは NDJSON 形式です。jq などのツールを使用して、NDJSON を JSON に変換できます。
    • 一括インポート では、インポートされた user ID に auth0| プレフィックスが自動的に追加されますが、Auth0 で生成されるユーザーエクスポートの user ID には、すでに auth0| プレフィックスが付いています。
    同じ user ID を維持するには、インポートするすべての user ID から auth0| プレフィックスを削除してください。削除しない場合、user ID にはプレフィックスが 2 回付与されます (auth0|auth0|<user_id>) 。
  • サポート対象の algorithmでハッシュ化されたパスワードを含むユーザーデータをインポートできます。サポートされていない algorithm でハッシュ化されたパスワードを持つユーザーは、一括インポート 後、初めて log in するときにパスワードをリセットする必要があります。 ユーザーが最初にインポートした custom_password_hash を使用して log in していない場合は、upsert を有効にした新しい ジョブ で custom_password_hash に別の値を指定し、ユーザーデータを再送信することで更新できます。

2. ユーザーデータをデータベース接続にインポートする

Auth0 Dashboardを使用してユーザーデータをインポートするには:
  1. Dashboard > User Management > Usersに移動します。
  2. ページの右上にあるユーザーのインポート/エクスポートを選択して、ユーザーのインポート/エクスポートページに移動します。
  3. ユーザーをインポートを選択して、ユーザーをインポートページに移動します。
  4. ユーザーJSONファイルで、+ ファイルを選択を選択し、ユーザーデータのJSONファイルをアップロードします。
  5. 接続でドロップダウンメニューを開き、ユーザーデータのインポート先となるデータベース接続を選択します。
  6. 必要に応じて、Upsert pre-existing users in connectionをオンにします。インポートするユーザーがデータベース接続内の既存ユーザーと一致した場合、データをアップサートするかどうかを選択できます。
    • デフォルトでは、アップサートは無効です。メールアドレス、ユーザーID、phone、またはユーザー名が一致するユーザーのインポートは失敗します。
    • アップサートを有効にすると、メールアドレスが一致するユーザーをインポートした際に、すべてのアップサート可能な属性が更新されます。
  7. 必要に応じて、すべてのテナント所有者に完了メールを送信をオンにします。有効にすると、ジョブの成功または失敗時に、すべてのテナント管理者に完了メールが送信されます。
  8. ジョブを送信するには、ユーザーをインポートを選択します。

3. ジョブのステータスを確認する

ジョブのステータスを確認するには、次の手順に従います。
  1. Dashboard > User Management > Usersに移動します。
  2. ページ右上のImport/Export Usersを選択して、Import/Export Usersページに移動します。少なくとも1つのジョブを開始すると、このページに送信したジョブの一覧が表示されます。
  3. ジョブの詳細を確認するには、対象のジョブの横にあるMore infoを選択します。
ジョブのステータスには、Job creation failedJob created, user import failedJob created, user import succeededがあります。
エラーが発生するとジョブは失敗しますが、無効なメールアドレスなど、無効なユーザー情報が含まれていても失敗しません。

制限

  • テナントごとに同時に実行できるインポートジョブは2件までです。
  • ユーザーインポートジョブは2時間でタイムアウトします。この時間内にジョブが完了しない場合、失敗としてマークされます。
  • ジョブ関連のデータはすべて24時間後に自動的に削除されます。
  • インポートファイル内に重複したユーザーエントリがあるとエラーになります。インポート後にupsertが行われることはありません。
  • upsertではuser_metadataまたはapp_metadataはマージされません。既存のメタデータは新しいメタデータで完全に上書きされます。

大規模な移行に関するベストプラクティス

大量のユーザーデータをインポートする場合 (10 件以上のジョブが必要な場合) は、次の戦略を推奨します。
  • ジョブスケジューラフレームワークを使用する (BullAgenda など) 。これにより、次のことが可能になります。
    • 必要な同時実行数の上限を設定する。
    • ネットワーク接続の切断や一時的な障害に対応する再試行戦略を組み込む。
    • 削除期限を過ぎてもジョブの結果とエラーの詳細を保存する。
  • 1 人のユーザーで失敗してもインポートを中断しない。 代わりに、生成されたすべてのジョブを確認し、失敗したレコードを新しいファイルに収集する「ファイナライザー」ジョブを実装します。収集した失敗レコードのエラーを修正し、新しいジョブとしてインポートします。
  • upsert モードを有効にする際は注意する。 upsert を使用したインポートは標準のインポートよりも遅く、メタデータはマージされません。既存のユーザーを更新する必要があり、これらの制限事項を理解している場合にのみ upsert モードを使用してください。