データベースからの自動移行を構成する
データベース接続を構成し、カスタムデータベースのアクションスクリプトを使用して、外部のユーザーストアからAuth0にユーザーを自動移行します。
データベース接続をカスタムとして構成する
データベース接続を作成し、カスタムに設定します。
[Auth0 Dashboard]>[Authentication(認証)]>[Database(データベース)]に移動し、データベースを選択して表示します。
[Custom Database(カスタムデータベース)]ビューを選択し、[Use my own database(独自のデータベースを使用する)]を有効にします。
[Settings(設定)]ビューを選択し、[Import Users to Auth0(ユーザーをAuth0にインポート)]を有効にしたのち、[Save(保存)]を選択します。
データベースのアクションスクリプトの構成
[Custom Database(カスタムデータベース)]ビューを選択し、[Database Action Scripts(データベースのアクションスクリプト)]を見つけます。

ログイン
ログインスクリプトは、Auth0に存在しないユーザーがログインを試みるたびに実行されます。ユーザーにパスワード入力を再度求めることなく、ユーザーが外部のユーザーストアに存在することを確認します。
ユーザーの取得
ユーザー取得スクリプトは、以下のすべてのシナリオの後に実行されます。
ユーザーがサインアップ試行を開始
ユーザーがパスワード変更フローを開始
ユーザーがIdentifier First + 生体認証を使用する際に、ログインIDを入力
Management APIのユーザーのメールアドレスまたはユーザー名の更新またはユーザーの作成エンドポイントが呼び出される
移行されていないユーザーがパスワード変更を承認し、ログインに成功すると、ユーザープロファイルが新しいパスワードでAuth0に作成されます。このユーザープロファイルは、ユーザー取得スクリプトで返されたすべてのデータを含みます。ユーザーのこれ以降のすべてのログインは、Auth0で直接実行されます。
ユーザー移行の完了を確認する
すべてのユーザーがAuth0 DashboardまたはAuth0 Management APIを使用してAuth0ユーザーストアに移行されたことを確認します。
[Auth0 Dashboard]>[User Management(ユーザー管理)]>[Users(ユーザー)]に移動し、ユーザーのリストを確認します。
Management APIのユーザーのリストまたは検索エンドポイントを使用します。
外部ユーザーストアの接続解除
データベースのアクションスクリプトを操作なしの関数として再構成します。これにより、ユーザー認証のためにAuth0が外部ユーザーストアにアクセスするのを防ぎます。
[Auth0 Dashboard]>[Authentication(認証)]>[Database(データベース)]に移動し、データベース接続を選択します。
[Custom Database(カスタムデータベース)]ビューに切り替え、[Database Action Scripts(データベースのアクションスクリプト)]を見つけます。
ログインスクリプトを更新します。
function login (email, password, callback) { return callback(null, null); }
Was this helpful?
/ユーザー取得スクリプトを更新します。
function getByEmail (email, callback) { return callback(null, null); }
Was this helpful?
/
ユーザーの移行に関する問題のトラブルシューティング
自動移行で問題が生じた場合は、まず「カスタムデータベース接続とアクションスクリプトのベストプラクティス」をお読みください。
ユーザーはすでに存在しています
この問題に遭遇する可能性が最も高いシナリオは次の通りです。
データベース接続からユーザーを削除した後、ユーザーの再作成を試みた
外部ユーザーストアに存在しているユーザーを、新規ユーザーとしてデータベース接続で作成を試みた
ユーザーの移行プロセスが中断された
ユーザーの移行プロセスの間、Auth0はまず、内部のユーザーストアで部分的なユーザープロファイルを作成してから、データベース接続で完全なユーザープロファイルを作成します。完全なユーザープロファイルの作成を妨げる問題が生じた場合、The user already exists
(ユーザーはすでに存在しています)エラーの可能性があります。
この問題は通常、データベース接続からそのユーザーを削除し、内部のユーザーストアからもそのユーザーを削除したのち、移行プロセスを再試行することで解決できます。
Real-time Webtask Logs拡張機能で
console.log()
ステートメントを確認します。Management APIのユーザー削除エンドポイントでユーザーを削除します。
Management APIの接続ユーザー削除エンドポイントでユーザーを削除します。
移行を再試行するため、ユーザーにログインまたはパスワードの変更を指示します。
メタデータの不足
ユーザーが移行プロセスを開始するログインまたはパスワード変更のフロー中に中断された場合、Auth0はそのメタデータ(user_metadata
またはapp_metadata
)および他のプロファイルデータを移行できない可能性があります。
このようなシナリオは、ユーザープロファイルにメタデータが不足していないかを確認して、外部ユーザーストアから取得してAuth0に保存するアクションを作成することで減らせます。