🔄auth0-migration
- プラグイン
- auth0
- ライセンス
- Apache-2.0
- ソース
- GitHub で見る ↗
説明
次のような場合に使用: 別のプロバイダー(Firebase、Cognito、Supabase、Clerk、またはカスタム認証)から Auth0 へ、ユーザーまたは認証を移行する場合。 ユーザーの一括インポート、段階的な移行戦略、JWT バリデーションの更新を網羅しています。 ユーザーが「認証を Auth0 に切り替えたい」や「ユーザーを Auth0 に移行したい」と言った場合にも使用してください。
原文を表示
Use when migrating users or authentication from another provider (Firebase, Cognito, Supabase, Clerk, or custom auth) to Auth0. Covers bulk user import, gradual migration strategies, and updating JWT validation — use even if the user says "switch our auth to Auth0" or "move our users to Auth0".
ユースケース
- ✓別のプロバイダーからAuth0へ移行する
- ✓ユーザーを一括インポートしたい
- ✓段階的な認証移行戦略を構築する
- ✓JWTバリデーションを更新する
本文(日本語訳)
Auth0 移行ガイド
既存の認証プロバイダーから Auth0 へのユーザーおよび認証フローの移行を行います。
概要
このスキルを使用するケース
- 別の認証プロバイダーから Auth0 へ移行する場合
- 既存ユーザーを一括インポートする場合
- アクティブなユーザーベースを段階的に移行する場合
- API 内の JWT バリデーションを更新する場合
このスキルを使用しないケース
- Auth0 を新規導入する場合 — 既存ユーザーがいない新規プロジェクトには
auth0-quickstartを使用してください - すでに Auth0 を使用している場合 — このスキルは Auth0 への移行を目的としており、Auth0 テナント間の移行には対応していません
- MFA や機能の追加のみを行う場合 — 機能の追加だけであれば、機能別の専用スキルを使用してください
移行アプローチ
- 一括移行: ユーザーを一度にインポート(小規模・非アクティブなユーザーベースに推奨)
- 段階的移行: 時間をかけてレイジーマイグレーションを実施(大規模・アクティブなユーザーベースに推奨)
- ハイブリッド: 非アクティブユーザーをインポートし、アクティブユーザーをレイジーマイグレーション
Step 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 を新規導入する)
移行ワークフロー
Step 1: 既存ユーザーのエクスポート
現在のプロバイダーからユーザーをエクスポートします。 詳細な手順は ユーザーインポートガイド を参照してください:
ユーザーごとに必要なデータ:
- メールアドレス
- メール確認済みステータス
- パスワードハッシュ(取得可能な場合)
- ユーザーメタデータ / プロフィールデータ
- 作成日時
Step 2: Auth0 へのユーザーインポート
ダッシュボード、CLI、または Management API を使用してユーザーをインポートします。
クイックスタート:
# Auth0 CLI を使用する場合
auth0 api post "jobs/users-imports" \
--data "connection_id=con_ABC123" \
--data "users=@users.json"
詳細な手順については以下を参照してください:
Step 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
Step 4: API の JWT バリデーションの更新
API で JWT を検証している場合は、Auth0 トークンを検証するように更新します。
主な変更点:
- アルゴリズム: HS256(対称)→ RS256(非対称)
- Issuer: カスタム値 →
https://YOUR_TENANT.auth0.com/ - JWKS URL:
https://YOUR_TENANT.auth0.com/.well-known/jwks.json
以下の実装例は JWT バリデーション例 を参照してください:
- Node.js / Express の実装
- Python / Flask の実装
- 主な変更点と移行チェックリスト
段階的移行戦略
アクティブユーザーが存在する本番環境では、フェーズを分けた移行アプローチを使用してください:
Phase 1: 並行認証
Auth0 とレガシープロバイダーを同時にサポートします:
// 移行中は両プロバイダーをサポート
const getUser = async () => {
// まず Auth0 を試みる
const auth0User = await getAuth0User();
if (auth0User) return auth0User;
// レガシープロバイダーにフォールバック
return await getLegacyUser();
};
Phase 2: 新規ユーザーを Auth0 に移行
- すべての新規サインアップを Auth0 で処理する
- 既存ユーザーはレガシープロバイダーを継続使用する
- 次回ログイン時にユーザーを移行する(レイジーマイグレーション)
Phase 3: 強制移行
- 残存ユーザーに「アカウントの更新」を促す
- Auth0 経由でパスワードリセットメールを送信する
- レガシーシステムの停止期限を設定する
Phase 4: クリーンアップ
- レガシー認証コードを削除する
- コンプライアンス対応のためユーザーエクスポートをアーカイブする
- ドキュメントを更新する
よくある移行の問題
| 問題 | 解決策 |
|---|---|
| パスワードハッシュに互換性がない | Auth0 カスタム DB コネクションとレイジーマイグレーションを使用する |
| ソーシャルログインが紐付かない | 同じソーシャルコネクションを設定すると、メールアドレスで自動的にリンクされる |
| カスタムクレームが存在しない | Auth0 Actions を使用してクレームを追加する |
| トークン形式が異なる | Auth0 の Issuer を使用した 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 インテグレーション
参考資料
原文(English)を表示
Auth0 Migration Guide
Migrate users and authentication flows from existing auth providers to Auth0.
Overview
When to Use This Skill
- Migrating from another auth provider to Auth0
- Bulk importing existing users
- Gradually transitioning active user bases
- Updating JWT validation in APIs
When NOT to Use
- Starting fresh with Auth0 - Use
auth0-quickstartfor new projects without existing users - Already using Auth0 - This is for migrating TO Auth0, not between Auth0 tenants
- Only adding MFA or features - Use feature-specific skills if just adding capabilities
Migration Approaches
- Bulk Migration: One-time user import (recommended for small/inactive bases)
- Gradual Migration: Lazy migration over time (recommended for large active bases)
- Hybrid: Import inactive users, lazy-migrate active users
Step 0: Detect Existing Auth Provider
Check if the project already has authentication:
Search for common auth-related patterns in the codebase:
| Pattern | Indicates |
|---|---|
signInWithEmailAndPassword, onAuthStateChanged |
Firebase Auth |
useUser, useSession, isSignedIn |
Existing auth hooks |
passport.authenticate, LocalStrategy |
Passport.js |
authorize, getAccessToken, oauth |
OAuth/OIDC |
JWT, jwt.verify, jsonwebtoken |
Token-based auth |
/api/auth/, /login, /callback |
Auth routes |
If existing auth detected, ask:
I detected existing authentication in your project. Are you:
- Migrating to Auth0 (replace existing auth)
- Adding Auth0 alongside (keep both temporarily)
- Starting fresh (remove old auth, new Auth0 setup)
Migration Workflow
Step 1: Export Existing Users
Export users from your current provider. See User Import Guide for detailed instructions:
- Exporting from Firebase
- Exporting from AWS Cognito
- Exporting from Supabase
- Exporting from Custom Database
Required data per user:
- Email address
- Email verified status
- Password hash (if available)
- User metadata/profile data
- Creation timestamp
Step 2: Import Users to Auth0
Import users via Dashboard, CLI, or Management API.
Quick start:
# Via Auth0 CLI
auth0 api post "jobs/users-imports" \
--data "connection_id=con_ABC123" \
--data "users=@users.json"
For detailed instructions:
- User JSON Format
- Password Hash Algorithms
- Import Methods
- Monitoring Import Progress
- Common Import Errors
Step 3: Migrate Application Code
Update your application code to use Auth0 SDKs.
See Code Migration Patterns for detailed before/after examples:
Frontend:
Backend:
Provider-Specific:
After migrating code, use framework-specific skills:
auth0-reactfor React applicationsauth0-nextjsfor Next.js applicationsauth0-vuefor Vue.js applicationsauth0-angularfor Angular applicationsauth0-expressfor Express.js applicationsauth0-react-nativefor React Native/Expo applications
Step 4: Update API JWT Validation
If your API validates JWTs, update to validate Auth0 tokens.
Key differences:
- Algorithm: HS256 (symmetric) → RS256 (asymmetric)
- Issuer: Custom →
https://YOUR_TENANT.auth0.com/ - JWKS URL:
https://YOUR_TENANT.auth0.com/.well-known/jwks.json
See JWT Validation Examples for:
- Node.js / Express implementation
- Python / Flask implementation
- Key differences and migration checklist
Gradual Migration Strategy
For production applications with active users, use a phased approach:
Phase 1: Parallel Auth
Support both Auth0 and legacy provider simultaneously:
// 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();
};
Phase 2: New Users on Auth0
- All new signups go to Auth0
- Existing users continue on legacy provider
- Migrate users on next login (lazy migration)
Phase 3: Forced Migration
- Prompt remaining users to "update account"
- Send password reset emails via Auth0
- Set deadline for legacy system shutdown
Phase 4: Cleanup
- Remove legacy auth code
- Archive user export for compliance
- Update documentation
Common Migration Issues
| Issue | Solution |
|---|---|
| Password hashes incompatible | Use Auth0 custom DB connection with lazy migration |
| Social logins don't link | Configure same social connection, users auto-link by email |
| Custom claims missing | Add claims via Auth0 Actions |
| Token format different | Update API to validate RS256 JWTs with Auth0 issuer |
| Session persistence | Auth0 uses rotating refresh tokens; update token storage |
| Users must re-login | Expected for redirect-based auth; communicate to users |
Reference Documentation
User Import
Complete guide to exporting and importing users:
- Exporting from Common Providers
- User JSON Format
- Password Hash Algorithms
- Import Methods
- Monitoring & Troubleshooting
Code Migration
Before/after examples for all major frameworks:
- React Patterns
- Next.js Patterns
- Express Patterns
- Vue.js Patterns
- Angular Patterns
- React Native Patterns
- API JWT Validation
Related Skills
Core Integration
auth0-quickstart- Initial Auth0 setup after migration
SDK Skills
auth0-react- React SPA integrationauth0-nextjs- Next.js integrationauth0-vue- Vue.js integrationauth0-angular- Angular integrationauth0-express- Express.js integrationauth0-react-native- React Native/Expo integration
References
原文・著作権は Anthropic および各プラグイン作者に帰属します。日本語訳は Claude API による自動翻訳です。