BÀI 04 / 08 · NHẬP MÔN

Đăng nhập chưa phải được phép

Tách việc kiểm chứng tài khoản khỏi quyết định ai được thao tác trên tài nguyên nào.

Đối chiếu nguồn · Có hỗ trợ AI · Bản 3 · 2026-10-29

Chưa qua chuyên gia thẩm định hoặc thử với người học; ví dụ và dữ liệu là tình huống tự tạo.

Đang kiểm tra bộ nhớ…

Mục tiêu & đầu vào

  • Phân biệt authentication và authorization.
  • Đọc bảng quyền theo chủ thể, thao tác, tài nguyên và ngữ cảnh.
  • Đề xuất một quyền tối thiểu và một phép kiểm tra từ chối.

Nên hiểu trước

Gợi ý đầu vào; bạn vẫn có thể đọc bài này.

Từ danh tính sang quyền

Tài khoản đã xác thực vẫn có thể yêu cầu một thao tác bị cấm. Phân quyền (authorization) quyết định chủ thể được làm gì với tài nguyên trong ngữ cảnh cụ thể. Một nội quy công khai có thể cho khách đọc mà không đăng nhập; một ghi chú riêng cần quy tắc khác.

Để giải thích một quyết định, hãy điền đầy đủ actor/action/resource/context. “Bình được dùng website” chưa phải “Bình được xóa ghi chú của Lan”.

Quyền phải phục vụ nhiệm vụ

Giả sử Lan thuộc nhóm A; Bình thuộc nhóm B. Mỗi thành viên chỉ cần sửa ghi chú của mình và đọc bản nháp của nhóm được phân công. Hãy bắt đầu bằng quyền cần cho nhiệm vụ, không bằng việc cấp rộng rồi hy vọng người dùng tự hạn chế.

Chủ thểTài nguyênĐọcSửa
LanGhi chú của LanCho phépCho phép
BìnhGhi chú của LanTừ chốiTừ chối
Lan, nhóm ABản nháp nhóm ACho phépChưa được cấp trong ví dụ
KháchNội quy công khaiCho phépTừ chối

Đặc quyền tối thiểu (least privilege) là chỉ cấp quyền cần thiết. Từ chối mặc định giúp xử lý trường hợp chưa có quy tắc cho phép rõ ràng. Tuy nhiên, “từ chối tất cả” không phải lời giải hoàn chỉnh: hệ thống còn phải cho đúng người thực hiện nhiệm vụ hợp lệ.

Ví dụ đã giải: ứng dụng ẩn nút xóa với thành viên thường. Điều đó giúp giao diện phù hợp vai trò, nhưng không tự ngăn một yêu cầu xóa được tạo bằng cách khác. Trong một ứng dụng thật, nơi thực thi quyết định phải kiểm tra quyền của yêu cầu; không chỉ tin trạng thái của nút.

Tài liệu gốc để đối chiếu khái niệm: OWASP — Authorization Cheat Sheet. Các nguồn còn lại được nêu trong metadata để reader hiển thị cùng phạm vi kiểm chứng.

ÁP DỤNG CÁCH HIỂU CỦA BẠN

Thực hành

Bài tập 1

Bổ sung một phép kiểm tra cho quy tắc ghi chú riêng. Nêu cả ca được phép và ca bị từ chối; xác định tài nguyên cụ thể.

Mở gợi ý

Nếu chỉ kiểm tra “đã đăng nhập” thì Bình và Lan có khác nhau ở điều quyết định không?

Đáp án tham khảo & tiêu chí

Ca dương: tài khoản Lan đọc ghi chú thuộc Lan phải được phép. Ca âm: tài khoản Bình đọc cùng ghi chú phải bị từ chối. Đổi ID tài nguyên hoặc ẩn nút không được làm thay đổi chính sách sở hữu. Nếu thêm vai trò hỗ trợ có quyền đặc biệt, cần định nghĩa quyền ấy trước, thay vì mặc định quản trị viên luôn được đọc mọi thứ.

  • Có chủ thể và tài nguyên cụ thể.
  • Có một ca dương hợp lệ.
  • Có một ca âm giữa hai tài khoản khác nhau.
  • Lý do dựa trên chính sách, không chỉ vào giao diện.

Tự đối chiếu lập luận; có thể có nhiều cách trả lời phù hợp.

Tự kiểm tra

Chọn rồi nộp để xem phản hồi. Quiz không tự đánh dấu hoàn thành bài.

1. Bình xác thực thành công bằng MFA. Bình có được đọc ghi chú riêng của Lan không?
Các lần làm gần đây
    2. Cách nào phù hợp để kiểm tra quy tắc “Bình không được xóa ghi chú của Lan” trong một ứng dụng thật?
    Các lần làm gần đây

      Suy ngẫm

      Viết một quy tắc đọc hoặc sửa theo actor/action/resource/context, rồi nêu ca dương, ca âm và ca biên.

      Dùng ghi chú để viết cách giải thích của riêng bạn.

      Nguồn & kiểm chứng

      Work + Codex — AI-assisted source/logic review; distractor revision after independent review. Mức: source-checked. Chưa qua chuyên gia thẩm định hoặc thử với người học; ví dụ và dữ liệu là tình huống tự tạo.

      Bạn tự đánh dấu khi sẵn sàng. Đây là tiến độ đọc, không phải chứng nhận năng lực.

      Ghi chú của tôi

      Chỉ lưu trong trình duyệt này. Không ghi mật khẩu hoặc bí mật.

      Chưa tải ghi chú.

      Bạn vẫn đọc được nội dung và bài tập. Quiz tương tác và lưu dữ liệu cần JavaScript.