Chuyển tới nội dung chính

Xác thực & Quản lý phiên (Authentication)

Trạng thái

Owner: Tech lead · Trạng thái: draft · Nguồn chuẩn: flezi.app.api.backend/app/features/auth/, app/middleware/auth.py

Tài liệu này mô tả các phương thức xác thực danh tính người dùng và bảo vệ phiên làm việc trong Flezi Galaxy.

Các phương thức xác thực​

  1. Local Authentication: Đăng nhập bằng Email và Mật khẩu (mật khẩu được băm bằng thuật toán bcrypt với cost factor an toàn).
  2. Doanh nghiệp SSO (Microsoft Entra ID): Hỗ trợ OpenID Connect (OIDC) cho phép tích hợp tài khoản nội bộ công ty.
  3. Google OAuth2: Hỗ trợ đăng nhập nhanh bằng Google Workspace ID Token.

Quản lý Token & Vòng đời phiên​

  • Access Token (JWT): Thời hạn ngắn (60 phút), ký bằng thuật toán HS256 với secret key trong Azure Key Vault.
  • Refresh Token: Lưu trữ trong cơ sở dữ liệu và Redis cache, hỗ trợ cơ chế thu hồi (token revocation) ngay lập tức khi đăng xuất hoặc nghi ngờ có rủi ro.
  • Internal Service Token: Token nội bộ giữa Backend và AI Runtime (X-Internal-Service-Token), không bao giờ lọt ra môi trường bên ngoài.

Kiểm soát hiện có​

  • Chống tấn công lặp lại (replay attacks) và chống race condition bằng hàng đợi silent-refresh trên Frontend.
  • Giới hạn tần suất request (Rate Limiting) trên các endpoint đăng nhập để ngăn chặn tấn công dò mật khẩu (Brute-force).

Bằng chứng (file / config)​

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

Hạn chế & roadmap​

  • Triển khai xác thực 2 lớp bắt buộc (MFA / TOTP) cho tài khoản local quản trị viên.