認証・セキュリティ
誰がアクセスできるかを決め、守る
画面とサーバーの入口に立つ門番。本人確認(認証)と、してよいことの範囲(認可)を扱う。
最初に触るなら
Clerk :作り込み済みUIコンポーネントごと導入できる開発者向け認証サービス
数十行でログインが付き、「認証は自分で作らない」という原則を体で覚えられる。
隣の分野とのつながり
| 分野 | どうつながるか |
|---|---|
| サーバー・API | 「本人か」「この操作をしてよいか」の判断はサーバー側で行う |
| 画面・フロントエンド | ログイン画面は画面側にあるが、判断はしない。トークンを預かって渡すだけ |
| 実行基盤・ホスティング | 公開面への攻撃(大量アクセス、ボット)は基盤の手前で止める |
| 画面・フロントエンド (から見ると) | ログイン画面はここにあるが、「本人かどうか」の判断はサーバー側が行う。画面は判断しない |
| サーバー・API (から見ると) | 「本人か」「この操作をしてよいか」の判断はここで行う |
この分野を理解する
認証と認可は別のもの。 「あなたは誰か」を確かめるのが認証(ログイン)、「あなたはこれをしてよいか」を決めるのが認可(権限)。最初に混ざりやすい2語なので、分けて覚える。
自分で作らない。 パスワードの保存、セッションの管理、トークンの失効。どれも正しく作るのが難しく、失敗すると利用者の情報が漏れる。Clerk や Auth0 のような認証サービスを使うか、Supabase のように基盤に同梱されたものを使う。「Google でログイン」のような仕組みは OAuth 2.0 / OpenID Connect という共通の約束事の上に成り立っていて、これも自分で実装はしないが、用語(アクセストークン、リダイレクト URI)だけは知っておく。
守る場所は入口だけではない。 ログインの手前で、そもそも怪しいアクセスを止める層がある。Cloudflare WAF のような道具は、大量のリクエストや既知の攻撃パターンを基盤の手前で弾く。
隣の分野との境界。 判断はサーバー、画面は表示、遮断は基盤の手前。認証サービスはその3つをまたいで使う部品である。
最初の一歩。 小さな画面に Clerk でログインを付け、「ログインしている人にだけ見えるページ」を1つ作る。
この分野のツール(4件)
種別(自分で書く土台か、借りて使うサービスか)で分けている。「主要制約」は各ツールで最も先に当たる限界。
マネージドサービス(3件)事業者が運用していて、借りて使うサービス。運用を任せられる代わりに、プランの上限が乗る
| ツール | 学習 | 料金 | 成熟 | 主要制約 | 検証 |
|---|---|---|---|---|---|
| Auth0 多様なID連携に対応するエンタープライズ向け認証・認可基盤 | 中 | 無料枠あり | 安定 | 無料プランのMAU上限:25,000 MAU(B2C・B2Bとも同一。月内にログインしたユニークユーザー数で計測) | |
| Cloudflare WAF / DDoS 保護 エッジでHTTPリクエストを検査し攻撃・DDoS・ボットを遮断するCDN型WAF | 中 | 無料枠あり | 安定 | 無料プランのWAFカスタムルール数上限:5ルール(Free)。Pro 20、Business 100、Enterprise 1,000 | |
| Clerk 作り込み済みUIコンポーネントごと導入できる開発者向け認証サービス | 低 | 無料枠あり | 成長中 | 無料プランのMRU(Monthly Retained Users)上限:50,000 MRU/アプリ |
プロトコル(1件)仕様・規格そのもの。実装は別にあり、用語を知るために載せている
| ツール | 学習 | 料金 | 成熟 | 主要制約 | 検証 |
|---|---|---|---|---|---|
| OAuth 2.0 / OpenID Connect 認可・認証の標準仕様。実装はAuth0等の各サービスに委ねる | 高 | 無料 | 安定 | リダイレクトURIの一致要件:完全な文字列一致が必須(RFC 6749 3.1.2.3節、RFC 3986 6.2.1節に基づく単純な文字列比較) |
どれを選ぶか
| ツール | 種別 | どういう時に選ぶか/避けるか |
|---|---|---|
| Auth0 | マネージドサービス | SAMLや多様なソーシャル連携、詳細なルール/アクション拡張が必要なエンタープライズ向け認証では第一候補。個人開発でMAU無料枠を大きく取りたい場合はClerkへ、依存を避けて仕様レベルから自前実装したい場合はOAuth 2.0/OIDCの直接実装を検討する |
| Cloudflare WAF / DDoS 保護 | マネージドサービス | エッジでのDDoS対策と基本的な攻撃遮断を、専用インフラを持たずに導入したい場合の第一候補。無料プランはルール数(カスタムルール5・レート制限1)が少なく高度なボット対策も持たないため、細かい条件分岐や多数のエンドポイント保護が必要になった時点でPro/Business以上への移行、または独自ロジックが必要ならCloudflare Workersとの併用を検討する |
| Clerk | マネージドサービス | React/Next.js等のフロントエンドで作り込み済みのサインイン画面やユーザー管理UIごと素早く導入したい場合に第一候補。SAML等のエンタープライズSSOを無料で検証したい場合や、より詳細なルール拡張が必要な場合はAuth0へ |
| OAuth 2.0 / OpenID Connect | プロトコル | 既存のIdP(Google、GitHub、社内SSO等)と連携する仕組みを理解し、実装や導入サービスを選ぶ基準にする際の出発点になる。今すぐ動くログイン機能が必要で実装コストをかけたくない場合は、仕様を直接実装せずAuth0やClerkなどのマネージドサービスへ。仕様の理解だけでは動くソフトウェアにはならない |
この分野が担う目的
目的ごとのページでは、他の分野のツールも含めて横断比較できる。
- 利用者を認証しアクセス権を制御する (この分野から 3件)
- 攻撃や不正アクセスから公開面を守る (この分野から 1件)