auth0-migration について
既存ユーザーと認証フローを Auth0 に移行するチーム向けのスキルです。一括・段階的・ハイブリッド移行を扱い、ユーザーのインポートからアプリコードや API の JWT 検証の更新まで案内します。
主な機能
- 01一括・段階的・ハイブリッド移行
- 02既存認証の検出
- 03ユーザーのエクスポートとインポート
- 04フロントエンドとバックエンドの移行例
- 05API の JWT 検証更新ガイド
活用シーン
- 01Firebase や Cognito のユーザーを Auth0 に移行
- 02アクティブユーザーを段階的に移行
- 03Auth0 JWT 検証に合わせて API を更新
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ auth0/ agent-skills --skill auth0-migrationインストール後、Claude Code で/auth0-migrationを入力して読み込まれたか確認します。
同梱ファイルreferences/code-patterns.mdreferences/user-import.md
詳細
Auth0 移行ガイド
既存の認証プロバイダーから Auth0 へユーザーと認証フローを移行します。
概要
このスキルを使用する場合
- 別の認証プロバイダーから Auth0 に移行する場合
- 既存ユーザーを一括インポートする場合
- アクティブなユーザーベースを段階的に移行する場合
- API の JWT 検証を更新する場合
使用しない場合
- Auth0 を新規に使い始める場合 - 既存ユーザーのいない新しいプロジェクトでは
auth0-quickstartを使用してください - すでに Auth0 を使用している場合 - これは Auth0 への移行用であり、Auth0 テナント間の移行用ではありません
- MFA や機能を追加するだけの場合 - 機能を追加するだけであれば、対象機能に特化したスキルを使用してください
移行方法
- 一括移行: 1 回限りのユーザーインポート(小規模または非アクティブなユーザーベースに推奨)
- 段階的移行: 時間をかけた遅延移行(大規模でアクティブなユーザーベースに推奨)
- ハイブリッド: 非アクティブなユーザーをインポートし、アクティブなユーザーを遅延移行
ステップ 0:既存の認証プロバイダーを検出する
プロジェクトにすでに認証機能があるか確認します:
コードベースで、一般的な認証関連のパターンを検索します。
| パターン | 示すもの |
|---|---|
signInWithEmailAndPassword, onAuthStateChanged | Firebase Auth |
useUser, useSession, isSignedIn | 既存の認証フック |
passport.authenticate, LocalStrategy | Passport.js |
authorize, getAccessToken, oauth | OAuth/OIDC |
JWT, jwt.verify, jsonwebtoken | トークンベースの認証 |
/api/auth/, /login, /callback | 認証ルート |
既存の認証が検出された場合は、次のように尋ねます:
プロジェクトに既存の認証機能があることを検出しました。どの操作を行いますか?
- Auth0 に移行する(既存の認証を置き換える)
- Auth0 を併用する(一時的に両方を維持する)
- 新規に開始する(古い認証を削除し、Auth0 を新規に設定する)
移行ワークフロー
ステップ 1:既存ユーザーをエクスポートする
現在のプロバイダーからユーザーをエクスポートします。詳しい手順については、ユーザーインポートガイドを参照してください。
ユーザーごとに必要なデータ:
- メールアドレス
- メールアドレスの確認済みステータス
- パスワードハッシュ(利用可能な場合)
- ユーザーメタデータ/プロフィールデータ
- 作成日時
ステップ 2:ユーザーを Auth0 にインポートする
ダッシュボード、CLI、または Management API を使ってユーザーをインポートします。
クイックスタート:
# Via Auth0 CLI
auth0 api post "jobs/users-imports" \
--data "connection_id=con_ABC123" \
--data "[email protected]"
詳しい手順:
ステップ 3:アプリケーションコードを移行する
アプリケーションコードを更新して、Auth0 SDK を使用するようにします。
変更前と変更後の詳細な例については、コード移行パターンを参照してください:
フロントエンド:
バックエンド:
プロバイダー別:
コードの移行後、フレームワークに対応するスキルを使用してください:
- React アプリケーションには
auth0-react - Next.js アプリケーションには
auth0-nextjs - Vue.js アプリケーションには
auth0-vue - Angular アプリケーションには
auth0-angular - Express.js アプリケーションには
auth0-express - React Native/Expo アプリケーションには
auth0-react-native
ステップ 4:API の JWT 検証を更新する
API で JWT を検証している場合は、Auth0 トークンを検証するように更新してください。
主な違い:
- アルゴリズム: HS256(対称)→ RS256(非対称)
- 発行者: カスタム →
https://YOUR_TENANT.auth0.com/ - JWKS URL:
https://YOUR_TENANT.auth0.com/.well-known/jwks.json
以下については、JWT 検証の例を参照してください:
- Node.js/Express の実装
- Python/Flask の実装
- 主な違いと移行チェックリスト
段階的な移行戦略
アクティブユーザーがいる本番アプリケーションでは、段階的なアプローチを採用してください:
フェーズ 1:認証の並行運用
Auth0 と従来のプロバイダーの両方を同時にサポートします:
// Support both providers during migration
const getUser = async () => {
// Try Auth0 first
const auth0User = await getAuth0User();
if (auth0User) return auth0User;
// Fall back to legacy provider
return await getLegacyUser();
};
フェーズ 2:新規ユーザーを Auth0 に移行
- 新規登録はすべて Auth0 に移行します
- 既存ユーザーは従来のプロバイダーを引き続き使用します
- 次回ログイン時にユーザーを移行します(遅延移行)
フェーズ 3:強制移行
- 残りのユーザーに「アカウントを更新」するよう促します
- Auth0 経由でパスワードリセットメールを送信します
- 従来のシステムを停止する期限を設定します
フェーズ 4:クリーンアップ
- 従来の認証コードを削除します
- コンプライアンス対応のためにユーザーエクスポートをアーカイブします
- ドキュメントを更新します
よくある移行時の問題
| 問題 | 解決策 |
|---|---|
| パスワードハッシュに互換性がない | 遅延移行を使用する Auth0 カスタム DB 接続を設定します |
| ソーシャルログインがリンクされない | 同じソーシャル接続を設定すると、ユーザーはメールアドレスで自動的にリンクされます |
| カスタムクレームがない | Auth0 Actions 経由でクレームを追加します |
| トークン形式が異なる | Auth0 の発行者を指定して RS256 JWT を検証するよう API を更新します |
| セッションの永続化 | Auth0 はローテーションリフレッシュトークンを使用します。トークンストレージを更新してください |
| ユーザーに再ログインが必要 | リダイレクトベースの認証では想定される動作です。ユーザーに周知してください |
参考ドキュメント
ユーザーのインポート
ユーザーのエクスポートとインポートに関する完全ガイド:
コードの移行
主要なすべてのフレームワークの移行前後の例:
関連スキル
コア統合
auth0-quickstart- 移行後の Auth0 初期セットアップ
SDK スキル
auth0-react- React SPA 統合auth0-nextjs- Next.js 統合auth0-vue- Vue.js 統合auth0-angular- Angular 統合auth0-express- Express.js 統合auth0-react-native- React Native/Expo 統合