User Story: Tự động tạo tài khoản mới khi đăng nhập SSO lần đầu (auto-provision)¶
1. Description¶
Là người dùng chưa có tài khoản trong hệ thống, tôi muốn hệ thống tự động tạo tài khoản mới cho tôi khi tôi đăng nhập SSO lần đầu, để tôi có thể truy cập hệ thống và chờ được Admin phân quyền vai trò.
2. Acceptance Criteria¶
2.1 Happy Path¶
AC-001: Tự động tạo tài khoản mới khi email chưa tồn tại¶
- GIVEN người dùng đăng nhập SSO lần đầu và hệ thống nhận được SAML Assertion hợp lệ
- WHEN hệ thống tra cứu email trong cơ sở dữ liệu nội bộ và không tìm thấy tài khoản nào trùng khớp
- THEN hệ thống tự động tạo tài khoản mới với thông tin: họ tên (display_name từ SSO), email, đơn vị (organization_unit từ SSO), trạng thái "chưa phân quyền"
AC-002: Hiển thị thông báo chưa phân quyền¶
- GIVEN tài khoản mới vừa được tạo tự động với trạng thái "chưa phân quyền"
- WHEN người dùng được chuyển hướng về hệ thống sau đăng nhập
- THEN hệ thống hiển thị thông báo "Chưa được phân quyền - vui lòng liên hệ Admin để được gán vai trò" và không cho phép truy cập các chức năng nghiệp vụ
AC-003: Mapping đơn vị từ SSO khi tạo tài khoản mới¶
- GIVEN SAML Assertion chứa thông tin organization_unit
- WHEN hệ thống tạo tài khoản mới
- THEN hệ thống map đơn vị từ SSO với cây tổ chức đã khai báo trong hệ thống và gán đơn vị tương ứng cho tài khoản mới
AC-004: Liên kết identity SSO với tài khoản mới tạo¶
- GIVEN tài khoản mới đã được tạo thành công
- WHEN hệ thống hoàn tất quá trình auto-provision
- THEN hệ thống liên kết identity SSO (username) với tài khoản nội bộ mới tạo để các lần đăng nhập sau được nhận diện tự động
2.2 Alternative Paths¶
AC-005: Đăng nhập lại sau khi Admin đã gán vai trò¶
- GIVEN tài khoản đã được tạo tự động trước đó và Admin đã gán vai trò
- WHEN người dùng đăng nhập SSO lại
- THEN hệ thống nhận diện tài khoản đã liên kết, tải vai trò đã được gán và cho phép truy cập các chức năng tương ứng
2.3 Error Cases¶
AC-006: Đơn vị SSO chưa tồn tại trong cây tổ chức¶
- GIVEN SAML Assertion chứa organization_unit chưa được khai báo trong cây tổ chức hệ thống
- WHEN hệ thống tạo tài khoản mới và cố gắng map đơn vị
- THEN hệ thống tạo tài khoản mới nhưng để trống trường đơn vị, ghi nhận cảnh báo vào log và thông báo Admin cần xử lý
AC-007: Email từ SSO không hợp lệ¶
- GIVEN SAML Assertion chứa email không đúng định dạng (không phải email hợp lệ)
- WHEN hệ thống cố gắng tạo tài khoản mới
- THEN hệ thống từ chối tạo tài khoản, ghi nhận lỗi vào log và hiển thị thông báo lỗi "Thông tin email từ SSO không hợp lệ - vui lòng liên hệ quản trị viên SSO"
3. Business Rules¶
- Email là khóa liên kết duy nhất giữa identity SSO và tài khoản nội bộ. Mỗi email chỉ tương ứng với một tài khoản duy nhất trong hệ thống
- Khi người dùng đăng nhập SSO lần đầu và email chưa tồn tại trong hệ thống, tài khoản mới được tạo tự động với trạng thái "chưa phân quyền"
- Người dùng có tài khoản "chưa phân quyền" cần liên hệ Admin để được gán vai trò (UC-SYS-002)
- Đơn vị (organization_unit) từ SSO cần được map chính xác với cây tổ chức đã khai báo trong hệ thống
- Hệ thống không lưu mật khẩu - xác thực hoàn toàn qua SSO
- Tất cả sự kiện tạo tài khoản tự động phải được ghi vào audit log
4. Traceability¶
Feature: EP-01-001: Đăng nhập SSO & User Provisioning
Related Use Cases:
Screens:
Business Flows:
- Không áp dụng
Business Entities:
Role Matrix:
Third-Party Integrations:
5. Out of Scope¶
- Phân quyền vai trò cho tài khoản mới tạo (thuộc Feature EP-01-003, UC-SYS-002)
- Quản lý cây tổ chức (thuộc Feature EP-01-004, UC-SYS-003)
- Liên kết tài khoản đã tạo sẵn (xem Story-002)
- Gửi thông báo tự động đến Admin khi có tài khoản mới cần phân quyền (có thể xem xét ở giai đoạn sau)