auth0-migration
既存の認証プロバイダー(Firebase、Cognito、Supabase、Clerk、カスタム認証)からAuth0への移行・切り替え時に使用します。ユーザーの一括インポート、段階的な移行戦略、コード移行パターン、JWTバリデーションの更新まで幅広くカバーします。
description の原文を見る
Use when migrating or switching from an existing auth provider (Firebase, Cognito, Supabase, Clerk, custom auth) to Auth0 - covers bulk user import, gradual migration strategies, code migration patterns, and JWT validation updates.
SKILL.md 本文
Auth0 移行ガイド
既存の認証プロバイダーからAuth0へユーザーと認証フローを移行します。
概要
このスキルを使用する場合
- 別の認証プロバイダーからAuth0へ移行する
- 既存ユーザーをまとめてインポートする
- アクティブなユーザーベースを段階的に移行する
- APIのJWT検証を更新する
使用しない場合
- Auth0で新規開始する - 既存ユーザーのいない新規プロジェクトの場合は
auth0-quickstartを使用してください - 既にAuth0を使用している - これはAuth0への移行用であり、Auth0テナント間の移行ではありません
- MFAまたは機能のみを追加する - 機能を追加するだけの場合は機能固有のスキルを使用してください
移行アプローチ
- 一括移行: ワンタイム・ユーザーインポート(小規模または非アクティブなベースの場合に推奨)
- 段階的移行: 時間をかけた遅延移行(大規模でアクティブなベースの場合に推奨)
- ハイブリッド: 非アクティブなユーザーをインポート、アクティブなユーザーを遅延移行
ステップ 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: 既存ユーザーをエクスポート
現在のプロバイダーからユーザーをエクスポートします。詳細な手順はユーザーインポートガイドを参照してください:
FirebaseからのエクスポートAWS CognitoからのエクスポートSupabaseからのエクスポートカスタムデータベースからのエクスポート
ユーザーごとに必須データ:
- メールアドレス
- メール検証ステータス
- パスワードハッシュ(利用可能な場合)
- ユーザーメタデータ/プロフィールデータ
- 作成タイムスタンプ
ステップ 2: Auth0へユーザーをインポート
ダッシュボード、CLI、またはManagement APIでユーザーをインポートします。
クイックスタート:
# Auth0 CLIを使用
auth0 api post "jobs/users-imports" \
--data "connection_id=con_ABC123" \
--data "users=@users.json"
詳細な手順:
ユーザーJSONフォーマットパスワードハッシュアルゴリズムインポート方法インポート進行状況の監視一般的なインポートエラー
ステップ 3: アプリケーションコードを移行
アプリケーションコードをAuth0 SDKを使用するように更新します。
詳細なBefore/Afterの例はコード移行パターンを参照してください:
フロントエンド:
React移行Next.js移行Vue.js移行Angular移行React Native移行
バックエンド:
Express.js移行API JWT検証
プロバイダー固有:
FirebaseからAuth0へSupabaseからAuth0へClerkからAuth0へ
コード移行後、フレームワーク固有のスキルを使用してください:
auth0-react- Reactアプリケーション向けauth0-nextjs- Next.jsアプリケーション向けauth0-vue- Vue.jsアプリケーション向けauth0-angular- Angularアプリケーション向けauth0-express- Express.jsアプリケーション向けauth0-react-native- React Native/Expoアプリケーション向け
ステップ 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とレガシープロバイダーの両方をサポート:
// 移行中に両方のプロバイダーをサポート
const getUser = async () => {
// 最初にAuth0を試す
const auth0User = await getAuth0User();
if (auth0User) return auth0User;
// レガシープロバイダーにフォールバック
return await getLegacyUser();
};
フェーズ 2: 新規ユーザーはAuth0で
- すべての新規サインアップはAuth0へ
- 既存ユーザーはレガシープロバイダーで継続
- 次回ログイン時にユーザーを移行(遅延移行)
フェーズ 3: 強制移行
- 残りのユーザーに「アカウント更新」を促す
- Auth0経由でパスワードリセットメールを送信
- レガシーシステムシャットダウンのデッドラインを設定
フェーズ 4: クリーンアップ
- レガシー認証コードを削除
- コンプライアンス用にユーザーエクスポートをアーカイブ
- ドキュメントを更新
一般的な移行の問題
| 問題 | 解決策 |
|---|---|
| パスワードハッシュが互換性がない | 遅延移行を使用してAuth0カスタムDB接続を使用 |
| ソーシャルログインがリンクしない | 同じソーシャル接続を設定、ユーザーはメールで自動リンク |
| カスタムクレームが不足している | Auth0 Actionsを使用してクレームを追加 |
| トークン形式が異なる | APIをAuth0発行者でRS256 JWTを検証するように更新 |
| セッション永続化 | Auth0は回転リフレッシュトークンを使用、トークン保存を更新 |
| ユーザーが再度ログインする必要がある | リダイレクトベースの認証では予想される動作、ユーザーに連絡 |
参考ドキュメント
ユーザーインポート
ユーザーのエクスポートとインポートの完全なガイド:
一般的なプロバイダーからのエクスポートユーザーJSONフォーマットパスワードハッシュアルゴリズムインポート方法監視とトラブルシューティング
コード移行
すべての主要なフレームワークのBefore/Afterの例:
ReactパターンNext.jsパターンExpressパターンVue.jsパターンAngularパターンReact NativeパターンAPI JWT検証
関連スキル
コア統合
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統合
参考資料
ライセンス: Apache-2.0(寛容ライセンスのため全文を引用しています) · 原本リポジトリ
詳細情報
- 作者
- auth0
- リポジトリ
- auth0/agent-skills
- ライセンス
- Apache-2.0
- 最終更新
- 不明
Source: https://github.com/auth0/agent-skills / ライセンス: Apache-2.0
関連スキル
secure-code-guardian
認証・認可の実装、ユーザー入力の保護、OWASP Top 10の脆弱性対策が必要な場合に使用します。bcrypt/argon2によるパスワードハッシング、パラメータ化ステートメントによるSQLインジェクション対策、CORS/CSPヘッダーの設定、Zodによる入力検証、JWTトークンの構築などのカスタムセキュリティ実装に対応します。認証、認可、入力検証、暗号化、OWASP Top 10対策、セッション管理、セキュリティ強化全般で活用できます。ただし、構築済みのOAuth/SSO統合や単独のセキュリティ監査が必要な場合は、より特化したスキルの検討をお勧めします。
claude-authenticity
APIエンドポイントが本物のClaudeによって支えられているか(ラッパーやプロキシ、偽装ではないか)を、claude-verifyプロジェクトを模した9つの重み付きルールベースチェックで検証できます。また、Claudeの正体を上書きしているプロバイダーから注入されたシステムプロンプトも抽出します。完全に自己完結しており、httpx以外の追加パッケージは不要です。Claude APIキーまたはエンドポイントを検証したい場合、サードパーティのClaudeサービスが本物か確認したい場合、APIプロバイダーのClaude正当性を監査したい場合、複数モデルを並行してテストしたい場合、またはプロバイダーが注入したシステムプロンプトを特定したい場合に使用できます。
anth-security-basics
Anthropic Claude APIのセキュリティベストプラクティスを適用し、キー管理、入力値の検証、プロンプトインジェクション対策を実施します。APIキーの保護、Claudeに送信する前のユーザー入力検証、コンテンツセーフティガードレールの実装が必要な場合に活用できます。「anthropic security」「claude api key security」「secure anthropic」「prompt injection defense」といったフレーズでトリガーされます。
x-ray
x-ray.mdプレ監査レポートを生成します。概要、強化された脅威モデル(プロトコルタイプのプロファイリング、Gitの重み付け攻撃面分析、時間軸リスク分析、コンポーザビリティ依存関係マッピング)、不変条件、統合、ドキュメント品質、テスト分析、開発者・Gitの履歴をカバーしています。「x-ray」「audit readiness」「readiness report」「pre-audit report」「prep this protocol」「protocol prep」「summarize this protocol」のキーワードで実行されます。
semgrep
Semgrepスタティック分析スキャンを実行し、カスタム検出ルールを作成します。Semgrepでのコードスキャン、セキュリティ脆弱性の検出、カスタムYAMLルールの作成、または特定のバグパターンの検出が必要な場合に使用します。重要:ユーザーが「バグをスキャンしたい」「コード品質を確認したい」「脆弱性を見つけたい」「スタティック分析」「セキュリティlint」「コード監査」または「コーディング標準を適用したい」と尋ねた場合も、Semgrepという名称を明記していなくても、このスキルを使用してください。Semgrepは30以上の言語に対応したパターンベースのコードスキャンに最適なツールです。
ghost-bits-cast-attack
Java「ゴーストビッツ」/キャストアタック プレイブック(Black Hat Asia 2026)。16ビット文字が8ビットバイトに暗黙的に縮小されるJavaサービスへの攻撃時に使用します。WAF/IDSを回避して、SQLインジェクション、デシリアライゼーション型RCE、ファイルアップロード(Webシェル)、パストトラバーサル、CRLF インジェクション、リクエストスマグリング、SMTPインジェクションを実行できます。Tomcat、Spring、Jetty、Undertow、Vert.x、Jackson、Fastjson、Apache Commons BCEL、Apache HttpClient、Angus Mail、JDK HttpServer、Lettuce、Jodd、XMLWriterに影響し、WAFバイパスにより多くの「パッチ済み」CVEを再度有効化します。