Okta
オクタ
はじめに
アプリケーションの認証基盤をAuth0へ移行する際に課題となるのが、既存ユーザデータベースからAuth0へのユーザ情報の移行です。
Auth0は下記2つのユーザインポート機能を提供しており、今回は「一括インポート」について手順をご紹介します。
- 一括インポート:ユーザ情報を定義したJSONファイルを用いて移行
- 自動マイグレーション:ユーザがAuth0を介してログインしたタイミングで、既存ユーザデータベースからユーザ情報を自動的に移行
一括インポートでは、既存ユーザデータベース等から抽出したユーザ情報をJSONファイルとして定義し、Auth0内のユーザデータベースへインポートします。既存ユーザデータベースで、Auth0側に対応するハッシュアルゴリズムによるパスワードが格納されている場合でも、ユーザ側へパスワードリセットを要求することなくユーザ移行できます。
前提
本ページ内の動作例では、Auth0連携済のWebアプリケーションを対象とします。
また、本ページに記載する機能及び設定に関する内容は、2022年11月現在の情報となります。
設定概要
一括インポートによるユーザ移行手順は、以下の通りです。
Auth0指定のフォーマットに合わせて登録するユーザ情報を記述
- Auth0 User Import / Export Extensionによるインポート
- Auth0 Management APIによるインポート
制限事項
Auth0の一括インポートで処理可能なJSONファイルのサイズは、500KB以下です。500KBを超える場合は、JSONファイルの分割が必要です。
https://auth0.com/docs/manage-users/user-migration/bulk-user-imports#create-users-json-file
設定例
Auth0指定のフォーマットに合わせて、登録するユーザ情報を記述します。
メールアドレスやパスワード等のフィールド名、Auth0側で対応するハッシュアルゴリズム等については、以下URLをご確認ください。
Custom password hash / Bulk User Import Database Schema and Examples - Auth0 docs
JSONファイル作成例 (パスワード:sha256によるハッシュ化、ソルト有り)
[
{
"email": "test.user2@example.com",
"email_verified": true,
"blocked": false,
"custom_password_hash": {
"algorithm": "sha256",
"hash": {
"value": "fe956a8026cf49df7b507dde94e45408dca812f4fa63bbfd1a099b403110e832",
"encoding": "hex"
},
"salt": {
"value": "abc123",
"position": "prefix"
}
}
}
]
- Auth0 User Import / Export Extensionによるインポート
- Auth0 Management APIによるインポート
API実行には様々な方法がありますが、本ページ記載の手順ではAuth0 Management API Explorer上から操作を行います。事前準備として、下記2つが必要です。
- Auth0 Management APIのアクセストークンの取得(Scopes:create;usersを有効)
手順は、以下URLを参照
https://auth0.com/docs/secure/tokens/access-tokens/management-api-access-tokens - Auth0 Management API Explorer上でのアクセストークン適用
[SET API TOKEN]をクリックし、取得したアクセストークンを適用
- users:インポートするJSONファイルを指定
- connection_id:インポート先のdatabase connection IDを指定
- upsert:インポート先のdatabase connection内に存在するユーザに対して情報更新を行う場合は”true”を指定
- send_completion_email:インポートジョブ完了後における完了メール送付有無を指定
補足事項
ユーザインポートのジョブ発行及びインポートジョブの完了は、Auth0ログからも確認可能です。
- インポートジョブ発行ログ
- インポートジョブ完了ログ
ログイン確認例:移行前のユーザ情報でのログイン
おわりに
一括インポートによるユーザ移行では、ユーザ情報を定義したJSONファイルを用いて簡単にユーザデータをインポートでき、対応のハッシュアルゴリズムであればユーザ移行に伴うパスワードリセットを必要としません。本機能は、無償のAuth0トライアル環境でも利用できますので、是非お試しください。
Auth0では、今回ご紹介した一括インポート以外にも、自動マイグレーションという移行方法を備えています。Auth0で実現するユーザ移行にご興味ある方は、是非弊社までお問合せください。
参考
お問い合わせ・資料請求
株式会社マクニカ Okta 担当
- TEL:045-476-2010
- E-mail:okta@macnica.co.jp
平日 9:00~17:00