Bỏ qua

User Story: Quản lý phiên đăng nhập (session management)

1. Description

Là người dùng đã đăng nhập thành công, tôi muốn hệ thống quản lý phiên đăng nhập của tôi một cách an toàn và tự động xác thực lại khi phiên hết hạn, để tôi có thể làm việc liên tục mà không bị gián đoạn không cần thiết.

2. Acceptance Criteria

2.1 Happy Path

AC-001: Tạo session sau xác thực thành công

  • GIVEN người dùng vừa được SSO xác thực thành công và hệ thống nhận SAML Assertion hợp lệ
  • WHEN hệ thống xử lý đăng nhập
  • THEN hệ thống tạo session phía ứng dụng với thông tin người dùng (họ tên, email, đơn vị, vai trò, thời gian hết hạn)

AC-002: Duy trì session trong suốt quá trình sử dụng

  • GIVEN người dùng đang có session hợp lệ
  • WHEN người dùng thao tác trên hệ thống (chuyển trang, thực hiện hành động)
  • THEN session được duy trì và người dùng không cần đăng nhập lại

AC-003: Đăng xuất khỏi hệ thống

  • GIVEN người dùng đang có session hợp lệ
  • WHEN người dùng nhấn nút "Đăng xuất"
  • THEN hệ thống hủy session phía ứng dụng và gửi LogoutRequest đến SSO (Single Logout nếu SSO hỗ trợ), chuyển hướng người dùng về trang đăng nhập

2.2 Alternative Paths

AC-004: Tự động xác thực lại khi session hết hạn (SSO session còn sống)

  • GIVEN session phía ứng dụng đã hết hạn nhưng session SSO vẫn còn hiệu lực
  • WHEN người dùng thao tác trên hệ thống
  • THEN hệ thống chuyển hướng người dùng đến SSO, SSO tự động xác thực (không cần nhập lại thông tin), hệ thống tạo session mới và người dùng tiếp tục làm việc

AC-005: Yêu cầu đăng nhập lại khi cả hai session đều hết hạn

  • GIVEN session phía ứng dụng đã hết hạn và session SSO cũng đã hết hạn
  • WHEN người dùng thao tác trên hệ thống
  • THEN hệ thống chuyển hướng người dùng đến SSO, SSO yêu cầu nhập lại thông tin đăng nhập

AC-006: Single Logout từ SSO

  • GIVEN người dùng đang có session hợp lệ trên hệ thống
  • WHEN người dùng đăng xuất từ một ứng dụng khác trong hệ sinh thái SSO và SSO gửi LogoutRequest đến hệ thống này
  • THEN hệ thống hủy session phía ứng dụng và chuyển hướng người dùng về trang đăng nhập (nếu SSO hỗ trợ Single Logout)

2.3 Error Cases

AC-007: Session bị tạm thời không hợp lệ

  • GIVEN người dùng đang có session nhưng session bị lỗi (dữ liệu session bị hư)
  • WHEN người dùng thao tác trên hệ thống
  • THEN hệ thống hủy session cũ và chuyển hướng người dùng đến SSO để xác thực lại

AC-008: Không thể kết nối SSO khi re-authenticate

  • GIVEN session phía ứng dụng đã hết hạn và hệ thống cần xác thực lại qua SSO
  • WHEN hệ thống không thể kết nối đến SSO
  • THEN hệ thống hiển thị trang lỗi "Hệ thống xác thực không khả dụng - vui lòng thử lại sau"

3. Business Rules

  • Session phía ứng dụng có thời gian hết hạn (session timeout) - giá trị cụ thể xác định ở giai đoạn thiết kế kỹ thuật
  • Khi session hết hạn, hệ thống tự động chuyển hướng đến SSO để xác thực lại (re-authentication)
  • Hệ thống hỗ trợ Single Logout nếu SSO hỗ trợ - khi người dùng đăng xuất, gửi LogoutRequest đến SSO
  • Hệ thống phụ thuộc hoàn toàn vào SSO để xác thực - không có cơ chế xác thực dự phòng
  • Tất cả sự kiện đăng xuất phải được ghi vào audit log
  • Thời gian phản hồi cho toàn bộ luồng đăng nhập lại (bao gồm redirect + xác thực + callback) phải dưới 3 giây

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

  • Cấu hình giá trị session timeout cụ thể (xác định ở giai đoạn thiết kế kỹ thuật)
  • Cơ chế xác thực dự phòng khi SSO không khả dụng
  • Quản lý session đồng thời trên nhiều thiết bị (concurrent sessions)
  • Cảnh báo người dùng trước khi session hết hạn