Unlimited Design & Technology

Dữ liệu và hệ thống nghiệp vụ

Thiết kế quyền theo bản ghi và hành động nghiệp vụ

Chức danh hiếm khi mô tả đủ ai được xem, sửa, duyệt hay xuất bản ghi nghiệp vụ. Hãy xây quyền theo quan hệ với bản ghi và hành động, rồi kiểm thử cùng quy tắc trên màn hình, API, nhập liệu và tác vụ nền.

UDT Insights22/05/2022
Một đồng nghiệp xem ma trận quyền bản ghi nối với tài liệu và chìa khóa hành động. Một đồng nghiệp xem bảng kẹp giấy.

Trưởng nhóm có thể sửa yêu cầu của một địa điểm nhưng chỉ xem nơi khác. Người xem xét có thể duyệt mà không được đổi tệp đính kèm. Phân biệt quản trị viên với người dùng không thể hiện đủ nhu cầu này. Bắt đầu từ hành động nghiệp vụ và bản ghi liên quan, rồi xác định điều kiện cho phép hành động.

Lập ma trận quyền nghiệp vụ

Liệt kê hành động theo cách người dùng hiểu, như giao việc, duyệt, mở lại, xuất và xóa. Với từng hành động, định nghĩa phạm vi bản ghi và quan hệ cần có. Người phụ trách, thành viên địa điểm, trách nhiệm được ủy quyền và trạng thái hiện tại có thể là điều kiện độc lập. Không mặc định quyền sửa bao gồm quyền duyệt.

OWASP phân biệt xác thực để xác định danh tính với phân quyền để xác định truy cập được phép.[4] Đăng nhập thành công không trả lời người này có được tác động bản ghi này không. Dùng phân biệt đó khi xem yêu cầu và giải thích từ chối truy cập cho nhân viên.

Thực thi ngoài các nút nhìn thấy

OWASP khuyến nghị mặc định từ chối và kiểm tra quyền trên mọi yêu cầu.[4] Ẩn nút giúp dễ dùng nhưng không phải ranh giới thực thi. Kiểm tra khi máy chủ đọc hoặc đổi dữ liệu. Bao gồm tải xuống, kết quả tìm kiếm, liên kết trực tiếp và giao diện lập trình ứng dụng, không chỉ màn hình sửa chính.

Bảo mật cấp dòng của PostgreSQL có thể giới hạn dòng được xem hoặc sửa, với mặc định từ chối khi đã bật mà không có chính sách áp dụng.[7] Chủ bảng thường không chịu các chính sách đó.[7] Xem kiểm soát cơ sở dữ liệu là một lớp. Xác minh danh tính và đặc quyền kết nối của ứng dụng, không mặc định mọi kết nối đều được bảo vệ.

Ví dụ giả định: hàng chờ sửa chữa nhiều địa điểm

Một dịch vụ sửa chữa giả định chỉ cho điều phối viên giao việc trong địa điểm của mình. Người xem xét vùng được duyệt chuyển giữa địa điểm nhưng không được đổi ghi chú sửa chữa. Ma trận ghi đây là hành động riêng, thay vì tạo một vai trò vùng có quyền rộng cho tiện.

Yêu cầu xuất tuân theo cùng giới hạn địa điểm như hàng chờ. Giao lại hàng loạt kiểm tra từng bản ghi trước khi ghi thay đổi. Mô hình cần nhiều kiểm thử hơn một công tắc vai trò rộng, nhưng giúp giải thích và kiểm toán công việc được phép rõ hơn.

Kiểm thử từ chối và quan hệ thay đổi

Viết kiểm thử cho tổ hợp được phép và bị cấm. Bao gồm nhân viên đổi địa điểm, người bị thu hồi ủy quyền và bản ghi đổi chủ khi đang xem xét. Quyết định tác vụ xuất kéo dài kiểm tra lại quyền hay dùng bản chụp đã được cho phép rõ. Thể hiện lựa chọn trong thiết kế.

Quy tắc chi tiết có thể khó duy trì. Nên dùng chính sách tái sử dụng và tập hành động nghiệp vụ nhỏ thay vì rải ngoại lệ. Cho hỗ trợ lời giải thích từ chối an toàn, không tiết lộ chi tiết nhạy cảm. Xem lại quyền đặc biệt để truy cập tạm không thành vĩnh viễn vì bị quên.

  • Ánh xạ từng hành động với phạm vi bản ghi.
  • Tách xem, sửa, duyệt, xuất và xóa.
  • Kiểm tra đường máy chủ và danh tính chạy nền.
  • Thử từ chối với địa điểm hoặc người phụ trách khác.
  • Quy định thu hồi quyền cho việc xếp hàng hoặc chạy lâu.

Tài liệu tham khảo

Trao đổi về dự án của bạn

Cùng UDT xác định nhu cầu và bước triển khai tiếp theo.

Liên hệ UDT
Zalo