mcpField
A
auth0-migration

auth0-migration

github.com/auth0セキュリティ55687 回インストール1 日前に更新
リポジトリ

auth0-migration について

既存ユーザーと認証フローを Auth0 に移行するチーム向けのスキルです。一括・段階的・ハイブリッド移行を扱い、ユーザーのインポートからアプリコードや API の JWT 検証の更新まで案内します。

主な機能

  1. 01一括・段階的・ハイブリッド移行
  2. 02既存認証の検出
  3. 03ユーザーのエクスポートとインポート
  4. 04フロントエンドとバックエンドの移行例
  5. 05API の JWT 検証更新ガイド

活用シーン

  1. 01Firebase や Cognito のユーザーを Auth0 に移行
  2. 02アクティブユーザーを段階的に移行
  3. 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, onAuthStateChangedFirebase Auth
useUser, useSession, isSignedIn既存の認証フック
passport.authenticate, LocalStrategyPassport.js
authorize, getAccessToken, oauthOAuth/OIDC
JWT, jwt.verify, jsonwebtokenトークンベースの認証
/api/auth/, /login, /callback認証ルート

既存の認証が検出された場合は、次のように尋ねます:

プロジェクトに既存の認証機能があることを検出しました。どの操作を行いますか?

  1. Auth0 に移行する(既存の認証を置き換える)
  2. Auth0 を併用する(一時的に両方を維持する)
  3. 新規に開始する(古い認証を削除し、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 統合

参考資料

コメント