Một yêu cầu đã được duyệt có thể nằm trong hàng chờ trước khi chạy. Trong thời gian đó, số lượng, người nhận hoặc quyền của người duyệt có thể thay đổi. Phê duyệt hết hạn trước khi thực thi cần được xử lý như một trạng thái nghiệp vụ rõ ràng, không phải lỗi khó hiểu để người vận hành bấm chạy lại.
Người duyệt đã đồng ý điều gì?
Gắn approval với định danh yêu cầu, phiên bản dữ liệu và phạm vi tác động. Nếu người dùng sửa người nhận sau khi được duyệt, một cờ approved chung không chứng minh phiên bản mới đã được chấp nhận. Giao diện nên cho thấy nội dung mà người duyệt đã xem, thay vì chỉ lưu tên và thời gian bấm nút.
OWASP khuyến nghị có cổng kiểm cuối trước thực thi, gắn việc kiểm quyền với hành động thực sự để tránh khoảng cách kiểm tra–sử dụng. Áp dụng vào workflow doanh nghiệp, đây là cơ sở để thiết kế kiểm lại revision, hiệu lực và thu hồi; không có nghĩa mọi tác vụ đều cần cùng một loại OTP hoặc cùng thời hạn.
Hợp đồng approval tối thiểu
| Trường | Câu hỏi cần trả lời |
|---|---|
| request_id + revision | Đã duyệt chính xác bản nào? |
| scope | Cho phép thao tác, đối tượng và giới hạn nào? |
| approver | Người duyệt có quyền tại mốc kiểm yêu cầu không? |
| expires_at / revoked_at | Quyền thực thi còn hiệu lực không? |
| execution outcome | Đã chạy, bị chặn hay chưa rõ kết quả? |

Ví dụ giả định: đổi người nhận sau khi duyệt
Yêu cầu R-21 revision 4 được duyệt để gửi tài liệu cho bộ phận A. Trước khi worker chạy, người tạo sửa thành bộ phận B và tạo revision 5. Cổng cuối phải chặn việc dùng approval của revision 4 cho revision 5. Thông báo nên chỉ ra cần duyệt lại vì phạm vi đã đổi, không quy lỗi chung là “hệ thống bận”. Đây là mô phỏng nguyên tắc, không phải tình huống khách hàng đã xảy ra.
Thu hồi khi worker đang chờ
Cần định nghĩa ranh giới sau cùng còn có thể hủy. Nếu tác động ngoài hệ thống đã bắt đầu, thu hồi approval không tự quay ngược hành động. Ghi rõ tác vụ bị chặn trước thực thi hay đã bắt đầu và cần đối chiếu. Với hành động nhạy cảm, thao tác giữ quyền thực thi và kiểm trạng thái cần được thiết kế nhất quán tại tầng có thẩm quyền; chỉ kiểm ở giao diện là chưa đủ.
- Approval còn hạn nhưng revision khác: yêu cầu duyệt lại.
- Approval hết hạn: không tự gia hạn bằng retry.
- Approval bị thu hồi: không chạy tác vụ đang chờ theo quyền cũ.
- Tác động chưa rõ kết quả: đối chiếu trước khi tạo một lượt thực thi mới.
Nghiệm thu bằng thay đổi xảy ra giữa hai mốc
Bộ ca đề xuất phải có khoảng chờ giữa duyệt và thực thi, rồi thay revision, thu hồi hoặc để hết hạn trong khoảng đó. Chưa có kết quả chạy nào được khẳng định. Mục tiêu là chứng minh quyền đi cùng đúng hành động, không phải làm màn hình duyệt có thêm nhiều trường.
Ma trận quyền phê duyệt AI Agent trả lời ai được duyệt và khi nào cần người. Bài này tập trung vào hiệu lực của một approval đã có. Khi chuẩn bị workflow phê duyệt trong phần mềm, hãy đưa revision và cổng kiểm cuối vào tiêu chí bàn giao.
Nguồn tham khảo và giới hạn
OWASP Transaction Authorization Cheat Sheet (đọc ngày 13/10/2026). Các biểu mẫu và tình huống trong bài là hướng dẫn biên tập hoặc ví dụ giả định; không phải kết quả kiểm thử, dữ liệu khách hàng hay cam kết năng lực đã triển khai. Cách áp dụng cần đối chiếu nền tảng và quyền thực tế.

