データベースからの自動移行を構成する

データベース接続を構成し、カスタムデータベースのアクションスクリプトを使用して、外部のユーザーストアからAuth0にユーザーを自動移行します。

データベース接続をカスタムとして構成する

データベース接続を作成し、カスタムに設定します。

  1. [Auth0 Dashboard]>[Authentication(認証)]>[Database(データベース)]に移動し、データベースを選択して表示します。

  2. [Custom Database(カスタムデータベース)]ビューを選択し、[Use my own database(独自のデータベースを使用する)]を有効にします。

    Auth0 Dashboard 認証 データベース接続 カスタムデータベース設定 独自のデータベース使用有効

  3. [Settings(設定)]ビューを選択し、[Import Users to Auth0(ユーザーをAuth0にインポート)]を有効にしたのち、[Save(保存)]を選択します。

データベースのアクションスクリプトの構成

[Custom Database(カスタムデータベース)]ビューを選択し、[Database Action Scripts(データベースのアクションスクリプト)]を見つけます。

Dashboard 認証 データベース接続 カスタムデータベースタブ データベースのアクションスクリプト

ログイン

ログインスクリプトは、Auth0に存在しないユーザーがログインを試みるたびに実行されます。ユーザーにパスワード入力を再度求めることなく、ユーザーが外部のユーザーストアに存在することを確認します。

ユーザーの取得

ユーザー取得スクリプトは、以下のすべてのシナリオの後に実行されます。

  • ユーザーがサインアップ試行を開始

  • ユーザーがパスワード変更フローを開始

  • ユーザーがIdentifier First + 生体認証を使用する際に、ログインIDを入力

  • Management APIユーザーのメールアドレスまたはユーザー名の更新またはユーザーの作成エンドポイントが呼び出される

移行されていないユーザーがパスワード変更を承認し、ログインに成功すると、ユーザープロファイルが新しいパスワードでAuth0に作成されます。このユーザープロファイルは、ユーザー取得スクリプトで返されたすべてのデータを含みます。ユーザーのこれ以降のすべてのログインは、Auth0で直接実行されます。

ユーザー移行の完了を確認する

すべてのユーザーがAuth0 DashboardまたはAuth0 Management APIを使用してAuth0ユーザーストアに移行されたことを確認します。

  1. [Auth0 Dashboard]>[User Management(ユーザー管理)]>[Users(ユーザー)]に移動し、ユーザーのリストを確認します。

  2. Management APIのユーザーのリストまたは検索エンドポイントを使用します。

外部ユーザーストアの接続解除

データベースのアクションスクリプトを操作なしの関数として再構成します。これにより、ユーザー認証のためにAuth0が外部ユーザーストアにアクセスするのを防ぎます。

  1. [Auth0 Dashboard]>[Authentication(認証)]>[Database(データベース)]に移動し、データベース接続を選択します。

  2. [Custom Database(カスタムデータベース)]ビューに切り替え、[Database Action Scripts(データベースのアクションスクリプト)]を見つけます。

  3. ログインスクリプトを更新します。

    function login (email, password, callback) {
      return callback(null, null);
    }

    Was this helpful?

    /

  4. ユーザー取得スクリプトを更新します。

    function getByEmail (email, callback) {
      return callback(null, null);
    }

    Was this helpful?

    /

ユーザーの移行に関する問題のトラブルシューティング

自動移行で問題が生じた場合は、まず「カスタムデータベース接続とアクションスクリプトのベストプラクティス」をお読みください。

ユーザーはすでに存在しています

この問題に遭遇する可能性が最も高いシナリオは次の通りです。

  • データベース接続からユーザーを削除した後、ユーザーの再作成を試みた

  • 外部ユーザーストアに存在しているユーザーを、新規ユーザーとしてデータベース接続で作成を試みた

  • ユーザーの移行プロセスが中断された

ユーザーの移行プロセスの間、Auth0はまず、内部のユーザーストアで部分的なユーザープロファイルを作成してから、データベース接続で完全なユーザープロファイルを作成します。完全なユーザープロファイルの作成を妨げる問題が生じた場合、The user already exists(ユーザーはすでに存在しています)エラーの可能性があります。

この問題は通常、データベース接続からそのユーザーを削除し、内部のユーザーストアからもそのユーザーを削除したのち、移行プロセスを再試行することで解決できます。

  1. Real-time Webtask Logs拡張機能console.log()ステートメントを確認します。

  2. Management APIのユーザー削除エンドポイントでユーザーを削除します。

  3. Management APIの接続ユーザー削除エンドポイントでユーザーを削除します。

  4. 移行を再試行するため、ユーザーにログインまたはパスワードの変更を指示します。

メタデータの不足

ユーザーが移行プロセスを開始するログインまたはパスワード変更のフロー中に中断された場合、Auth0はそのメタデータ(user_metadataまたはapp_metadata)および他のプロファイルデータを移行できない可能性があります。

このようなシナリオは、ユーザープロファイルにメタデータが不足していないかを確認して、外部ユーザーストアから取得してAuth0に保存するアクションを作成することで減らせます。

もっと詳しく