Chapter 1

概要 & 認証フロー

Cloud Auth は、Cookieによるセキュアセッション管理を提供するフルスタック認証ソリューションです。

一般的なWebアプリケーションでは、アクセストークンをLocalStorageやSessionStorageに保存する例が多く見られますが、これはクロスサイトスクリプティング(XSS)攻撃に対して脆弱です。

Cloud Auth は、セッション管理に HttpOnly、Secure な Cookie を使用したステートフルな認証方式を採用しています。 ブラウザ環境では JavaScript によるトークン読み書きを完全にシャットアウトすることで、不正侵入リスクを最小限に防ぎます。 Web と API が別ドメインで動作する構成では Cookie は SameSite=None となるため、 状態を変更するリクエストでは Origin ヘッダを検証して CSRF を防いでいます。

🎨 認証フロー図 (Graphical Flow)

HttpOnly Cookie Authentication Flow Diagram

ステップごとの詳細解説:

  1. Credentials 送信 (HTTPS):
    ブラウザ等のクライアントから安全な暗号化通信(HTTPS)でログイン情報を送信します。
  2. ユーザー照合 (Serverless SQL D1):
    Cloudflare Workers APIは、受信したパスワードとD1データベースに保存されたPBKDF2暗号ハッシュを安全に照合します。
  3. セッションの初期化 & トークン生成:
    照合成功後、D1 にセッションを登録し、そのセッションIDを含む JWT アクセストークンを生成します。以降のリクエストでは毎回このセッションの有効性を確認するため、ログアウトや失効が即座に反映されます(KV はレート制限と OAuth の一時状態に使用します)。
  4. Set-Cookie レスポンス:
    サーバーから、HttpOnlySecure などの機密属性を付与したCookieをレスポンスヘッダとしてクライアントに返します。ブラウザはこれをCookieストレージに自動的に保存し、以降の同ドメインへのリクエストに自動付与します。