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
- 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
bcryptvới cost factor an toàn). - 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.
- 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.