
Clerk 徹底解説:無料プランからユーザー情報取得、他サービスへの移行まで
Clerkは、モダンなアプリケーションに特化した認証・ユーザー管理プラットフォームです。開発者はClerkを利用することで、サインイン、サインアップ、ユーザー管理機能をアプリケーションに簡単に統合できます。特にReact、Next.jsといったモダンなJavaScriptフレームワークとの相性が抜群です。
Clerkは、eコマースサイト、SaaSアプリケーション、モバイルアプリなど、幅広いアプリケーションに最適です。 例えば、eコマースサイトでは、Clerkのユーザー管理機能を使用して顧客のアカウント情報を管理し、パーソナライズされたショッピング体験を提供することができます。SaaSアプリケーションでは、Clerkの認証機能を使用して、ユーザーの安全なログインとアクセス制御を実現することができます。モバイルアプリでは、Clerkのソーシャルログイン機能を使用して、ユーザーが簡単にサインアップできるようにすることができます。
本レポートでは、Clerkの機能、料金体系、ユーザー情報取得、他サービスへの移行可能性について詳細に解説し、無料プランとProプランの違いを明確化します。
Clerkが無料で提供している機能
Clerkは無料プランでも豊富な機能を提供しており、多くのアプリケーションで必要となる基本的な認証・ユーザー管理機能を網羅しています。 Clerkは開発モードではすべての機能を無料で使用できますが、本番モードではドメイン制限があります。
主な無料機能は以下の通りです。
月間アクティブユーザー (MAU) 10,000人まで無料: サインアップ後24時間以上経過してからアプリケーションに戻ってきたユーザーがアクティブユーザーとしてカウントされます。多くのスタートアップや小規模アプリケーションでは、無料プランの範囲内で運用できるでしょう。
サインアップのみで利用のないユーザーは無料: アカウントを作成したものの、その後アプリケーションを利用していないユーザーは課金対象外となります。これにより、実際の利用状況に応じた料金を支払うことができます。
事前構築済みのコンポーネント: サインイン、サインアップ、ユーザープロフィールなどのUIコンポーネントがあらかじめ用意されているため、開発者はこれらのコンポーネントをそのまま利用したり、必要に応じてカスタマイズしたりすることができます。
カスタムドメイン: Clerkで提供されるデフォルトのドメインではなく、独自のドメインを設定することができます。これにより、ブランドイメージを維持したままClerkの機能を利用できます。
チーム・組織管理: チームや組織を作成し、ユーザーをグループ化することができます。
月間アクティブ組織 (MAO) 100組織まで無料: 少なくとも2人のメンバーがいて、そのうち少なくとも1人がアクティブユーザーである組織がアクティブ組織としてカウントされます。
自動アカウントリンク: ユーザーが複数の認証方法 (例:メールアドレスとソーシャルログイン) を使用してサインインした場合、Clerkは自動的にそれらのアカウントをリンクします。
ユーザーメタデータ: ユーザーに関する追加情報をメタデータとして保存することができます。
Webhookによるデータ同期: ユーザーデータの変更などをWebhookで他のサービスに通知することができます。
アカウントロックアウト / ブルートフォース攻撃対策: 不正なログイン試行を検知し、アカウントをロックアウトすることで、ブルートフォース攻撃からアカウントを保護します。
ボット対策: ボットによる不正なサインアップを防止するための機能が組み込まれています。
メールサブアドレスのブロック: 特定のメールサブアドレスからのサインアップをブロックすることができます。
使い捨てメールアドレスのブロック: 使い捨てメールアドレスからのサインアップをブロックすることができます。
招待制: 招待されたユーザーのみがサインアップできるように制限することができます。
カスタムセッショントークン: セッショントークンをカスタマイズすることができます。
カスタムJWTテンプレート: JWT (JSON Web Token) のテンプレートをカスタマイズすることができます。
ダッシュボードシート: チームメンバーをClerkダッシュボードに招待して共同作業することができます。
データの完全エクスポート: ユーザーデータをCSVファイルとしてエクスポートすることができます。
コミュニティサポート: Clerkのコミュニティフォーラムで質問したり、他のユーザーと情報交換したりすることができます。
メールサポート: メールでClerkのサポートチームに問い合わせることができます。
これらの機能により、開発者は認証・ユーザー管理に関連する多くの作業をClerkに任せることができ、アプリケーション開発に集中することができます。
登録したユーザーの情報を取得することは可能か?
はい、Clerkから登録ユーザーの情報を取得することは可能です。 Clerkは、ユーザーのID、名前、プロフィール画像、メタデータなどの情報を User オブジェクトとして提供しています。
ユーザー情報の取得方法は、フロントエンドとバックエンドでそれぞれ異なります。
フロントエンド:
useUser() フック: Reactアプリケーションで @clerk/nextjs を使用している場合、 useUser() フックを使用して認証済みユーザーの情報を取得できます。 useUser() は、内部で /v1/me エンドポイントにクエリを実行することでユーザー情報を取得します。
/v1/me エンドポイント: フロントエンドAPIから /v1/me エンドポイントにリクエストを送信することで、認証済みユーザー自身の情報を取得できます。
バックエンド:
currentUser() ヘルパー: Next.jsのサーバーコンポーネント、サーバーアクション、APIルートハンドラなどのバックエンドコードで @clerk/nextjs/server を使用している場合、 currentUser() ヘルパーを使用して認証済みユーザーの情報を取得できます。
GetUserList バックエンドAPIエンドポイント: バックエンドAPIから GetUserList エンドポイントにリクエストを送信することで、すべてのユーザーまたは特定のユーザーの情報を取得できます。
取得したユーザー情報は、アプリケーション内でユーザーの識別、パーソナライズされたコンテンツの表示、ユーザー固有の機能の提供などに利用できます。
Clerkから他のサービスに移行することは可能か?
Clerkから他のサービスに移行することは可能です。 Clerkはユーザーデータのエクスポート機能を提供しており、CSVファイルとしてダウンロードすることができます。
移行には、主に以下の2つの方法があります。
基本的なエクスポート/インポート: Clerkからユーザーデータをエクスポートし、それを新しいサービスにインポートします。
トリクル移行: 段階的にユーザーをClerkから新しいサービスに移行します。
基本的なエクスポート/インポート
Clerkのダッシュボードから、またはBackend APIを使用してユーザーデータをエクスポートし、新しいサービスにインポートします。この方法では、一度にすべてのユーザーを移行するため、移行期間中にサービスが一時的に利用できなくなる可能性があります。Clerkはオープンソースの移行スクリプトを提供しており、 これを使用することでJSONファイルに記載されたユーザーデータをClerkにインポートすることができます。
トリクル移行
Clerkと新しいサービスを並行して運用し、段階的にユーザーを新しいサービスに移行します。この方法では、サービスを停止することなく移行できますが、移行期間が長くなる可能性があります。
いずれの方法を選択するかは、アプリケーションの要件やユーザー数などを考慮して決定する必要があります。
無料プランとProプランの明確な違いは何か?
Clerkの無料プランとProプランの主な違いは以下の通りです。 Clerkの料金体系は、アクティブユーザー数に基づいており、サインアップのみで利用のないユーザーは無料です。これは、他の認証サービスと比較して大きなメリットと言えるでしょう。
Clerkの無料プラン vs Proプランの比較リスト
月間アクティブユーザー (MAU)
無料プラン: 10,000人まで無料
Proプラン: 10,000人まで無料 + 超過分は1MAUあたり$0.02
月間アクティブ組織 (MAO)
無料プラン: 100組織まで無料
Proプラン: 100組織まで無料 + 超過分は1MAOあたり$1
Clerkブランディングの削除
無料プラン: 不可
Proプラン: 可能
アクセス許可リスト / ブロックリスト
無料プラン: 不可
Proプラン: 可能
セッション期間のカスタマイズ
無料プラン: 不可
Proプラン: 可能
SMSコード
無料プラン: 不可
Proプラン: 可能
サインイントークン
無料プラン: 不可
Proプラン: 可能
Web3ウォレット
無料プラン: 不可
Proプラン: 可能
自動アカウントリンク
無料プラン: 可能
Proプラン: 可能
ユーザーメタデータ
無料プラン: 可能
Proプラン: 可能
Webhookによるデータ同期
無料プラン: 可能
Proプラン: 可能
パスワード要件のカスタマイズ
無料プラン: 不可
Proプラン: 可能
メール & SMSテンプレートのカスタマイズ
無料プラン: 不可
Proプラン: 可能
多要素認証 (MFA)
無料プラン: 不可
Proプラン: 可能
エンタープライズ接続
無料プラン: 不可
Proプラン: 可能
ダッシュボードシート
無料プラン: 3シート
Proプラン: 3シート + 追加シートは1シートあたり$10/月
ソーシャル接続
無料プラン: 最大3つ
Proプラン: 無制限
Clerkの包括的な調査
Clerkは、開発者にとって使いやすい認証・ユーザー管理プラットフォームとして高く評価されています。 事前構築済みのUIコンポーネント、柔軟なAPI、管理ダッシュボードなど、開発に必要なツールがすべて揃っています。
セキュリティ対策
Clerkは、セキュリティにも力を入れており、以下の機能を提供しています。
多要素認証 (MFA): SMSやメールによるワンタイムパスコードを使用した多要素認証を提供しています。デバイスの監視機能により、アクティブなデバイスを追跡し、個々のセッションを管理することができます。
ボット対策とブルートフォース攻撃対策: ボット検出機能により、不正なサインアップを防止します。設定可能なCAPTCHAオプションも用意されています。また、ブルートフォース攻撃に対する自動防御機能も備えています。
SOC 2 Type IIおよびCCPA準拠: ClerkはSOC 2 Type IIに準拠しています。
CSRFおよびXSS対策: クロスサイトリクエストフォージェリ (CSRF) およびクロスサイトスクリプティング (XSS) 対策を実装しています。
Auth0との比較
Auth0は、Clerkと同様に、広く利用されている認証・ユーザー管理プラットフォームです。 Auth0は、Clerkよりも包括的な機能とカスタマイズオプションを提供しており、エンタープライズ向けのアプリケーションに適しています。一方、Clerkは、Auth0よりも使いやすく、セットアップが簡単なため、スタートアップや小規模プロジェクトに適しています。
デメリット
Clerkは、サードパーティサービスであるため、ユーザーデータの管理を完全に制御できない点がデメリットとして挙げられます。 また、Clerkのドキュメントによると、開発モードではすべての機能を無料で使用できますが、本番モードではドメイン制限があります。
Clerkの主な利点は以下の通りです。
迅速かつ簡単なセットアップ: Clerkは、わずか数分でアプリケーションに統合することができます。
開発者向けのAPIとUIコンポーネント: ClerkのAPIは、開発者にとって使いやすく、直感的に理解できます。また、事前構築済みのUIコンポーネントは、カスタマイズが容易で、アプリケーションにシームレスに統合できます。
モダンな機能のサポート: パスワードレスログイン、多要素認証、ソーシャルログインなど、最新の認証機能をサポートしています。
優れた開発体験: Clerkは、ユーザーフレンドリーなダッシュボードを提供しており、設定の管理、ユーザーアクティビティの監視、問題のデバッグなどを簡単に行うことができます。
柔軟な料金体系: 無料プランからエンタープライズプランまで、さまざまな料金プランが用意されており、アプリケーションの規模やニーズに合わせて最適なプランを選択できます。
Clerkは、スタートアップからエンタープライズまで、あらゆる規模のアプリケーションに適した認証・ユーザー管理プラットフォームです。
まとめ
Clerkは、モダンなアプリケーションに特化した、開発者フレンドリーな認証・ユーザー管理プラットフォームです。無料プランでも豊富な機能が利用でき、Proプランではさらに高度な機能を利用することができます。ユーザー情報の取得も容易で、他のサービスへの移行も可能です。
Clerkは、アプリケーションの認証・ユーザー管理をシンプルかつセキュアに実現したい開発者にとって、最適な選択肢と言えるでしょう。