結論(おすすめ1つ)
迷ったら Clerk に乗り換えるのが第一候補です。理由は3行で。
-
React/Next.js 前提なら
<SignIn />などの UI コンポーネントが揃い、認証画面を自前で作らずに済む。 - ユーザー管理ダッシュボードとセッション管理が標準装備で、Auth0 の運用感に最も近い。
- ただし B2B の SSO/SCIM を売りにするなら WorkOS、DB と認証を一体運用したいなら Supabase Auth が合う(後述)。
比較表(料金/無料枠/移行コスト/対応言語)
| 項目 | Clerk | Supabase Auth | WorkOS |
|---|---|---|---|
| 料金 | MAU 課金(公式の料金ページで要確認) | DB 込みプラン課金(公式の料金ページで要確認) | SSO 接続単位など(公式の料金ページで要確認) |
| 無料枠 | あり・上限は公式で要確認 | あり・上限は公式で要確認 | あり・上限は公式で要確認 |
| 移行コスト | 中(UI 置換が中心) | 中〜高(DB 設計と密結合) | 中(B2B SSO 設計が必要) |
| 対応言語 | JS/TS 中心+各種 Backend SDK | JS/TS・各言語クライアント | API/SDK で多言語呼び出し可 |
| 強み | フロント UI・DX | DB+認証の統合 | 企業向け SSO/Directory |
※金額・無料枠の具体値は変動するため、必ず各社の公式料金ページで確認してください。
移行手順
ここでは Auth0 → Clerk(Next.js 例)の最小手順を示します。
- パッケージ導入
npm install @clerk/nextjs
- 環境変数を設定(Clerk ダッシュボードのキーを使用)
# .env.local
NEXT_PUBLIC_CLERK_PUBLISHABLE_KEY=pk_xxx
CLERK_SECRET_KEY=sk_xxx
- アプリ全体を Provider で包む
// app/layout.tsx
import { ClerkProvider } from '@clerk/nextjs'
export default function RootLayout({ children }) {
return (
<ClerkProvider>
<html lang="ja"><body>{children}</body></html>
</ClerkProvider>
)
}
- ミドルウェアで保護ルートを定義
// middleware.ts
import { clerkMiddleware } from '@clerk/nextjs/server'
export default clerkMiddleware()
export const config = {
matcher: ['/((?!_next|.*\\..*).*)', '/(api|trpc)(.*)'],
}
- 既存ユーザーの移行は、Auth0 からユーザーをエクスポートし、Clerk の移行用 API(Backend API / インポート機能)で取り込みます。パスワードハッシュをそのまま移せるかは方式に依存するため、移行前に対象ユーザーへのパスワード再設定フローも用意しておくと安全です。
# Auth0 側はエクスポートジョブ → 取得した JSON を Clerk Backend API へ投入
# 具体的なエンドポイント仕様は各社ドキュメントで要確認
Supabase Auth へ移す場合は @supabase/supabase-js を入れ signInWithPassword 等に置換、WorkOS は SSO 接続を作成し AuthKit / SDK で受け口を実装します。
向き不向き
- Clerk が向く:React/Next.js 主体で、認証 UI とユーザー管理をすぐ整えたい個人〜中規模チーム。
- Supabase Auth が向く:すでに Supabase の DB を使っており、認証と行レベルセキュリティ(RLS)を一体で運用したいチーム。
- WorkOS が向く:エンタープライズ顧客向けに SSO(SAML/OIDC)や SCIM プロビジョニングが必須の B2B SaaS。
-
避けるべきケース:
- 特定フレームワークに依存しない汎用認証だけが欲しいなら、UI 同梱の Clerk は過剰になりがち。
- DB を別途持っているなら Supabase Auth の統合メリットは薄く、密結合が負債になりやすい。
- 個人向けアプリ中心で SSO 需要がないなら、WorkOS の機能は持て余す。
- いずれも料金は MAU や接続数で増えるため、ユーザー急増を見込むなら事前に公式の料金ページで試算すること。
Top comments (0)