亮介2020.07.07この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。既存のデータベースやサービスからユーザーの認証情報をAuth0に移行する必要があります。APIを使用する一括インポート拡張機能を使ったインポートがあります。データを作成すでに稼働しているシステムでは不要ですが、今回はサンプルデータを用意して試します。(id));データとして以下を用意。ハッシュアルゴリズムはSHA256を使用しました。hash)values("sample_user_1","sample1@classmethod.net","BEB47E1B660CD2B55FED9DCCB4FC572A250E165F219926B11D6D6D4DA40BCEAF"),("sample_user_2","sample2@classmethod.net","AAE0C7FADCA1BDDBE92C3BC0B85B9777625B6BA17E7072D41FAF526C65CB76C9"),("sample_user_3","sample3@classmethod.net","D892F917156C6CFE42B4D8003B0B15EBC160C0619CAB4F4C2B9DD3968EDED0CC");やってみるAuth0にインポート用のデータベース接続とアプリケーションを用意するパスワード認証用のデータベースと、それを使ってログインするアプリケーションを作成する必要があります。ページからコネクションを作成します。ページから作成します。Applicationの作成後、設定画面のConnectionsタブをクリックし、接続したいConnectionのトグルをONにします。Auth0にインポートするためのファイルを用意するAuth0にインポートするユーザーデータを含むJSONファイルを作成する必要があります。}},{.........................略}といったjsonデータを用意します。hexまたはbase64でなければいけません。インポートジョブAPIを実行するcurlを使ってAPIを実行してみます。メールアドレス、ユーザーID、またはユーザー名が一致する既存のユーザーは失敗します。インポートジョブが完了したときに、完了メールをすべてのテナント所有者に送信します。false:送信しない実行後、リクエスト成功で以下のような内容が返却されます。"id":"job_SbmUbuE4i82PxR4P"}インポートジョブのステータスを確認するには、以下のコマンドを実行します。JOB_IDにリクエスト送信で返ってきた値を指定します。summaryにインポートできたユーザー数や失敗したユーザー数、更新したユーザー数が出力されます。この例ではcompletedとなっていますので、Auth0ダッシュボードでもユーザーが追加されているか確認してみます。jsonに記述した名前、メールアドレス、インポートジョブで指定したconnectionにユーザーが登録されていますね。ログイン確認ユーザー登録はされたので、実際にログインできるか確認してみましょう。移行前のパスワードと同じものでログインできるはずです。おまけ同じDBに違うハッシュアルゴリズムを使ったユーザーをインポートできるのか?本記事ではsha256でハッシュ化されたパスワードをインポートしましたが、そこに別のハッシュアルゴリズムを使ったパスワードをインポートできるか気になったのでやってみます(bcryptを使用)。以下のクエリでテーブルにデータを突っ込みました。}}algorithmにbcryptを指定します。注意点として、hash.valueには$2a$か$2b$を前につける必要があります。$2x$のバージョンはサポートされていませんでした。ファイルを作成後、先ほどと同じインポートジョブを実行してみます。"id":"job_q1QHat2BnTR1G9O5"}のようにリクエストが受け付けられました。ステータスを確認してみると、completedで成功していました。"id":"job_q1QHat2BnTR1G9O5"}もちろんダッシュボード上からもユーザーの確認ができました。いうことで同じデータベースに対して別々のハッシュアルゴリズムを使ったパスワードもインポートできて、ログインもできるということがわかりました。