Cloud Auth の内部有効期限ポリシーと、APIサーバーのレート制限(Rate Limiting)設定一覧です。
システムで発行されるセッショントークンおよびリセットトークン類の有効期間は以下の通り規定されています。
| トークン種類 | 有効期限(ライフタイム) | セキュリティ用途 |
|---|---|---|
| Access Token (JWT) | 15 分間 | APIアクセス認可用の短期アクセストークン。 |
| Refresh Token (KV/Cookie) | 14 日間 | アクセストークンの自動更新用セッションCookie(ca_refresh_token)。 |
| Email Verification Link | 24 時間 | 新規登録時のアカウント本確認用メールリンク。 |
| Password Reset Link | 1 時間 | パスワード再設定用の認証コードおよびURLの有効期限。 |
| Email Change Link | 1 時間 | メールアドレスの変更時の承認メールリンクの有効期限。 |
ブルートフォース攻撃や悪意あるDDoS・スパムからサーバーリソースを防衛するため、IPおよびアカウントごとに以下のレート制限を行っています。
| 対象API操作 | 最大リクエスト回数 | 計測時間枠 (Window) | 制限超過時の挙動 |
|---|---|---|---|
| ログイン (LOGIN) | 50 回 | 15 分間 | HTTP 429 Too Many Requests を返し、以降のログインを遮断 |
| 新規登録 (REGISTER) | 3 回 | 1 時間 | アカウント作成要求をブロックし、スパムによる大量アカウント作成を抑止 |
| パスワードリセット (RESET) | 3 回 | 1 時間 | メール送信負荷を軽減し、ユーザーへのいたずら登録を防ぎます |
| トークン更新 (REFRESH) | 30 回 | 15 分間 | クライアントスクリプトのバグ等による高頻度のトークン更新通信を防止 |
本システムは、高いエッジ実行速度(パフォーマンス)と強固なセキュリティ要件(安全性)を両立させるため、「JWT検証」 と 「DB(D1)セッション検証」 のハイブリッドアーキテクチャを採用しています。
Webフロントエンドからのアクセスでは、ブラウザのセキュリティ機能で保護された ca_access_token セッションCookie を優先して参照します。ネイティブアプリ等のCookieが送信できないクライアントには、Authorization: Bearer ヘッダー 経由でのJWTトークン検証にも対応しています。
トークンの中身には userId や sessionId、および role(権限ロール)がクレームとして埋め込まれており、暗号署名(HMAC-SHA256)によって改ざんを自動検知します。APIアクセスごとにデータベースに直接クエリを発行せず、Cloudflare Workers のエッジサーバー上で即座にトークンの正当性を検証するため、極めて低遅延でのAPIレスポンスを実現します。
JWTから取り出された一時セッションID(sessionId)は、D1データベース上の sessions テーブル の現在状態と強固に同期されています。ユーザーが「ログアウト」を明示的に実行した場合、またはパスワード変更などによってセッション全破棄が要求された場合、D1データベースの該当セッション情報を削除(失効処理)することで、トークンの有効期限内であっても即座にAPIアクセスを無効化できます。
🛡️ 本アーキテクチャのセキュリティ適合性(十分性評価):