認証とセッション管理 (Authentication)
ステータス
担当者: Tech lead · ステータス: draft · 正式な情報源: flezi.app.api.backend/app/features/auth/、app/middleware/auth.py
このドキュメントでは、Flezi Galaxy におけるユーザーの本人確認方法とセッション保護について説明します。
認証方式
- Local Authentication: Email と password でログインします (password は安全な cost factor の
bcryptアルゴリズムで hash 化されます)。 - 企業 SSO (Microsoft Entra ID): OpenID Connect (OIDC) をサポートし、社内アカウントを統合できます。
- 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) を必須化します。