
移行を開始する
1
前提条件
自動移行を設定するには、次のものが必要です。
- 外部ユーザーストアを使用するカスタムデータベース接続
2
移行を有効にする
Auth0 Dashboard > Authentication > Database で、カスタムデータベース接続を選択します。設定タブで、Import Users to Auth0 をオンにし、Save を選択します。
3
データベースアクションスクリプトを設定する
データベースアクションスクリプトは、ユーザーのログインやサインアップ時など、Auth0 が外部ユーザーストアとやり取りする際に実行するコードです。次に、Custom Database タブで、Database Action Scripts セクションを見つけます。
自動移行を有効にするには、次の 2 つのスクリプトを実装する必要があります。

-
login()スクリプト:Auth0 データベースに存在しないユーザーがログインしようとしたときに実行されます。 -
getUser()スクリプト:サインアップやパスワード変更などの際に実行されます。getUser()スクリプトから返されたデータは、新しい Auth0 ユーザープロファイルに移行されます。
移行中の外部ユーザーストアデータの管理
- 明示的にアーカイブまたは削除しない限り、ユーザーは外部ユーザーストアに残ります。ユーザーがAuth0に移行された後、Auth0から削除されても外部ユーザーストアに残っている場合、そのユーザーがログインを試みて再度移行される可能性があります。 意図的に削除したユーザーが意図せず再作成されるのを防ぐため、LoginまたはGet Usersのカスタムデータベースアクションスクリプトを実行する前に、外部ユーザーストア内のユーザーIDを移行済みとしてマークすることをお勧めします。
- 通常、Auth0ユーザーストア内のユーザーは、Loginアクションスクリプトの完了後に作成されます。Loginスクリプト内でインライン操作として外部ユーザーストアからユーザーを削除するのではなく、移行中にエラーが発生した場合のユーザーの誤削除を避けるため、独立したプロセスとしてユーザーを削除することをお勧めします。
移行を完了する
1
移行の完了を確認する
外部ユーザーストアのすべてのユーザーがAuth0ユーザーストアに存在することを確認し、移行が完了していることを検証します。Auth0ユーザーストア内のすべてのユーザーは、次の2つの方法で確認できます。
- Auth0 Dashboard > User Management > Users。
-
Management APIのList or Search users endpoint (
GET /users) 。
2
外部ユーザーストアを切断する
すべてのユーザーが移行されたことを確認したら、データベースアクションスクリプトを何も実行しない関数に更新することで、外部ユーザーストアを切断できます。これにより、Auth0がユーザーを認証するために外部ユーザーストアへ接続しなくなります。Auth0 Dashboard > Authentication > Databaseでデータベース接続を選択します。Custom Databaseタブで、Database Action Scriptsセクションを探します。Loginスクリプトを更新します。Get Userスクリプトを更新します。
ユーザー移行の問題のトラブルシューティング
重複したユーザーまたはユーザーはすでに存在します
DUPLICATED_USER エラーは、ユーザーが Auth0 の内部ユーザーストアには存在するものの、テナントには存在しないことを示します。次の場合にこのエラーが発生することがあります。
- 複数の移行方法を使用しようとする (例:自動移行の後に一括ユーザーインポートを行う) 。
- データベース接続からユーザーを削除した後、そのユーザーを再作成しようとする。
- ユーザーが外部ユーザーストアにすでに存在している状態で、データベース接続に新しいユーザーを作成しようとする。
DUPLICATED_USER または “The user already exists” エラーを解決するには、次の手順を実行します。
-
Actions リアルタイムログ で
console.log()の出力を確認します。 - Management API の Delete a User エンドポイントを使用してユーザーを削除します。
- Management API の Delete a Connection User エンドポイントを使用してユーザーを削除します。
- ユーザーに、移行を再試行するため、ログインするかパスワードを変更するよう案内します。
メタデータの欠落
user_metadata または app_metadata) を移行できない場合があります。
この問題は、ユーザーのプロファイルにメタデータがないことを確認し、外部ユーザーストアから取得して Auth0 に保存する Action を作成することで軽減できます。