Bỏ qua, đến nội dung

Hướng dẫn cài đặt — Password Policy

Yêu cầu

  • Server Digiforce đang chạy
  • Plugin plugin-auth đã kích hoạt
  • Plugin plugin-notification-manager (tùy chọn — cần cho thông báo hết hạn mật khẩu)

Bước 1: Kích hoạt Plugin

Vào Settings → Plugin Manager, tìm plugin-password-policy và bật.

Khi cài đặt lần đầu (install), plugin tự động:

  1. Tạo bản ghi passwordPolicy với giá trị mặc định
  2. Sao chép password hash hiện tại của tất cả user vào userPasswordHistory
  3. Tạo notification channel password-expiration-in-app-message cho cảnh báo hết hạn

Bước 2: Cấu hình chính sách cơ bản

Vào Settings → Authentication → Password Policy và thiết lập:

Quy tắcMô tảGiá trị mặc định
Độ dài tối thiểuSố ký tự tối thiểu (6–64)6
Độ phức tạpMức yêu cầu ký tự (xem bảng bên dưới)alpha_numeric
Không chứa usernameCấm mật khẩu chứa tên đăng nhậpBật
Lịch sử mật khẩuSố mật khẩu cũ không được trùng3

Các mức độ phức tạp

Giá trịYêu cầu
noneKhông yêu cầu (chỉ kiểm tra độ dài)
alpha_numericPhải có chữ cái + số
alpha_numeric_specialPhải có chữ cái + số + ký tự đặc biệt
numbers_upper_lowerPhải có chữ thường + chữ hoa + số
numbers_upper_lower_specialPhải có chữ thường + chữ hoa + số + ký tự đặc biệt
3_of_4Đạt ít nhất 3 trong 4 loại: chữ thường, chữ hoa, số, ký tự đặc biệt

Bước 3: Cấu hình bảo mật đăng nhập

Tham sốMô tảGiá trị mặc định
Số lần đăng nhập sai tối đaSau bao nhiêu lần sai sẽ bị giới hạn5
Khoảng thời gian đếm (giây)Counter reset sau khoảng thời gian này600 (10 phút)
Thời gian khóa (giây)Khóa tài khoản trong bao lâu (0 = không khóa, chỉ delay)0

Bước 4: Cấu hình hết hạn mật khẩu

Tham sốMô tảGiá trị mặc định
Thời hạn mật khẩu (ngày)Sau bao nhiêu ngày phải đổi mật khẩu0 (không hết hạn)
Kênh thông báoChannel gửi cảnh báo khi sắp hết hạnpassword-expiration-in-app-message

Giá trị hợp lệ cho thời hạn: 0 (vĩnh viễn), 30, 90, 180, 365 ngày.

Khi mật khẩu còn ≤ 10 ngày trước khi hết hạn, plugin tự động gửi thông báo qua plugin-notification-manager mỗi lần user đăng nhập.

Bước 5: Kiểm tra

  1. Thử tạo user mới với mật khẩu không đủ mạnh → hệ thống phải từ chối
  2. Thử đổi mật khẩu trùng với mật khẩu cũ → hệ thống phải báo lỗi
  3. Thử đăng nhập sai liên tục → tài khoản phải bị giới hạn/khóa

Lưu ý quan trọng

  • Chính sách áp dụng cho tất cả user (kể cả admin)
  • Kiểm tra policy chạy qua hook users.beforeCreateusers.beforeUpdate — áp dụng khi tạo user mới và đổi mật khẩu
  • Mật khẩu hiện tại của user không bị ảnh hưởng cho đến khi đổi mật khẩu lần tiếp
  • Lịch sử mật khẩu lưu tối đa 24 bản ghi per user (hard limit) — khi đầy, bản ghi cũ nhất bị ghi đè
  • BloomFilter dùng để kiểm tra nhanh locked users — có thể có false positive nhưng không bao giờ false negative