メインコンテンツまでスキップ

認証とセッション管理 (Authentication)

ステータス

担当者: Tech lead · ステータス: draft · 正式な情報源: flezi.app.api.backend/app/features/auth/、app/middleware/auth.py

このドキュメントでは、Flezi Galaxy におけるユーザーの本人確認方法とセッション保護について説明します。

認証方式​

  1. Local Authentication: Email と password でログインします (password は安全な cost factor の bcrypt アルゴリズムで hash 化されます)。
  2. 企業 SSO (Microsoft Entra ID): OpenID Connect (OIDC) をサポートし、社内アカウントを統合できます。
  3. Google OAuth2: Google Workspace ID Token による簡易ログインをサポートします。

Token とセッションのライフサイクル管理​

  • Access Token (JWT): 有効期間は短く (60 分)、Azure Key Vault の secret key を使用して HS256 アルゴリズムで署名します。
  • Refresh Token: データベースと Redis cache に保存し、ログアウト時またはリスクが疑われる場合に直ちに revoke できる仕組み (token revocation) をサポートします。
  • Internal Service Token: Backend と AI Runtime の間で使用する内部 token (X-Internal-Service-Token) であり、外部環境に出ることはありません。

現在の対策​

  • Frontend の silent-refresh queue により、replay attacks と race condition を防止します。
  • ログイン endpoint では request 頻度を制限する (Rate Limiting) ことで、パスワード推測攻撃 (Brute-force) を防止します。

証跡 (file / config)​

  • flezi.app.api.backend/app/features/auth/
  • flezi.app.api.backend/app/middleware/security.py

制限事項とロードマップ​

  • 管理者の local アカウントに対して、2 要素認証 (MFA / TOTP) を必須化します。