Rbac liên quan đến dac và mac như thế nào

ACL [Access Control List - Danh sách điều khiển truy cập]

Là hình thức phân quyền dựa trên một danh sách các quyền truy cập.

  • Subject có thể Action tới Object.
  • Dựa vào người dùng và nhóm người dùng.

Ví dụ

  • Cho phép Nguyễn Văn A tạo bài viết
'Subject' : 'Nguyễn Văn A'
'Action' : 'Tạo'
'Đối tượng' : 'Bài viết'
  • Nguyễn Văn A có thể tạo bài viết..

Ví dụ : Phân quyền trong MySql.

DAC [Discretionary Access Control - Điều khiển truy cập tùy quyền]

Là hình thức phân quyền dựa trên một danh sách các quyền truy cập, DAC khác ACL ở chỗ chủ thể của đối tượng có thể ủy quyền cho một chủ thể khác.

  • Subject có thể Action tới Object.
  • Subject có thể Grant cho Subject khác.
  • Dựa vào người dùng và nhóm người dùng.

Ví dụ

  • Cho phép Nguyễn Văn A tạo bài viết
'Subject' : 'Nguyễn Văn A'
'Action' : 'Tạo'
'Đối tượng' : 'Bài viết'
  • Nguyễn Văn A có thể tạo bài viết.
  • Nguyễn Văn A cho phép Lê Văn B tạo bài viết
'Subject' : 'Lê Văn B'
'Action' : 'Tạo'
'Đối tượng' : 'Bài viết'
  • Lê Văn B có thể tạo bài viết.

Ví dụ : Phân quyền file trong các hệ điều hành.

MAC [Mandatory access control - Điều khiển truy cập bắt buộc]

Là hình thức phân quyền dựa trên một danh sách các quyền truy cập, tuy nhiên thay vì hướng chủ thể thì MAC có thể hướng cả đối tượng nữa.

  • Subject có thể Action tới Object.
  • Object có thể Action bởi Object.
  • Dựa vào người dùng và nhóm người dùng.

Ví dụ

  • Cho phép Nguyễn Văn A tạo bài viết
'Subject' : 'Nguyễn Văn A'
'Action' : 'Tạo'
'Đối tượng' : 'Bài viết'
  • Nguyễn Văn A có thể tạo bài viết.
  • Bài viết có thể sửa bởi Lê Văn B
'Đối tượng' : 'Bài viết'
'Action' : 'Tạo'
'Subject' : 'Lê Văn B'
  • Lê Văn B có thể tạo bài viết.

Ví dụ : SELinux.

RBAC [Role-Based Access Control - Điều khiển truy cập theo vai]

Là hình thức phân quyền dựa vào vai, mỗi Subject sẽ thuộc một hoặc nhiều Role. Mỗi Role lại có một hoặc nhiều Permission thực thi Action tới Object.

  • Một Subject thuộc một hoặc nhiều Vai
  • Một Vai có một hoặc nhiều Quyền.

Ví dụ

  • Người dùng Nguyễn Văn A có quyền Admin, User.
  • Người dùng Lê Văn B có quyền User.
  • User có quyền Đọc bài viết.
  • Admin có quyền Đọc, Thêm. Sửa, Xóa bài viết.

=>

  • Người dùng A có quyền Đọc, Thêm. Sửa, Xóa bài viết.
  • Người dùng Lê Văn B có quyền Đọc bài viết.

Ví dụ : Phân quyền của VBulettin, Xenforo, ...v...v...

Kết luận

Có thể dễ dàng thấy, với các hệ thống như ACL, MAC, DAC, việc implement phân quyền cho các hệ thống trở nên dễ dàng hơn. Hệ thống chỉ cần kiểm tra Subject là ai, Object là gì, Action là sao, rồi so sánh với danh sách truy cập để quyết định Action này có thể được thực hiện hay không.

Tuy nhiên, khi có nhiều người dùng có quyền giống nhau, việc bổ sung quyền trở nên phức tạp thì bạn có thể dùng RBAC. Giả sử như trên ví dụ trên, ta có 200 người dùng. Và người dùng có thể sửa bài viết, với ACL bạn sẽ phải thêm 200 bản ghi "Subject X" có thể "Sửa" "Bài viết".
Với RBAC, một khi 200 người dùng đã được gán vào user, mỗi khi user có một quyền mới, ta chỉ cần thêm 1 bản ghi, đó là "User" có quyền "Sửa" "Bài viết".

Hi vọng qua bài viết này, các bạn có thể dễ dàng chọn lựa mô hình phân quyền phù hợp cho hệ thống của mình.

Nevermore - 04-07-2019

RBAC [Kiểm soát truy cập dựa trên vai trò] dựa trên việc xác định danh sách các vai trò nghiệp vụ và thêm mỗi người dùng trong hệ thống vào một hoặc nhiều vai trò. Các quyền và đặc quyền sau đó được cấp cho từng vai trò và người dùng nhận được chúng thông qua tư cách thành viên của họ trong vai trò đó [tương đương với một nhóm]. Các ứng dụng thường sẽ kiểm tra người dùng về tư cách thành viên trong một vai trò cụ thể và cấp hoặc từ chối quyền truy cập dựa trên đó.
Kiểm soát truy cập tùy ý [DAC] cho phép người dùng hoặc quản trị viên xác định Danh sách kiểm soát truy cập [ACL] trên một tài nguyên cụ thể [ ví dụ: tệp, khóa đăng ký, bảng cơ sở dữ liệu, đối tượng OS, v.v.], Danh sách này sẽ chứa các mục nhập [ACE] xác định từng người dùng có quyền truy cập vào tài nguyên và đặc quyền của họ đối với tài nguyên đó.

Lợi ích chính của RBAC so với DAC, là dễ quản lý - về nguyên tắc, bạn có rất ít vai trò, được quản lý tập trung, bất kể có bao nhiêu người dùng và vấn đề chỉ là cấp cho mỗi người dùng vai trò chính xác ; trái ngược với DAC, trong đó đối với mỗi người dùng mới [hoặc thay đổi người dùng, hoặc xóa, v.v.], bạn phải xem xét tất cả các tài nguyên mà họ cần truy cập và thêm chúng vào danh sách.
Mặt khác, DAC thường đơn giản hơn và thường chi tiết hơn. Ngoài ra, trong mô hình DAC, chủ sở hữu dữ liệu có thể quyết định ai có quyền truy cập [nếu anh ta có quyền đó đối với dữ liệu] và thêm hoặc xóa mọi người khỏi danh sách.

Ví dụ rất phổ biến về DAC là hệ thống tệp Windows. Mặt khác, ví dụ rất phổ biến của RBAC là DAC trên máy chủ tệp của công ty - bất kỳ ai trong nhóm ActiveDirectory "Bán hàng" sẽ có quyền truy cập vào thư mục \ Sales \ shared. Phổ biến hơn là nhóm Quản trị viên trong Windows.

MAC là Kiểm soát Truy cập Bắt buộc, đây có thể được xem như một phân loại hoặc mức độ riêng tư. Điều này thường được sử dụng nhất trong các hệ thống quân sự, và trở lại trong những ngày Mainframe :]. Không còn được sử dụng nhiều nữa, mặc dù hệ điều hành hiện tại đang triển khai một hương vị của điều này, chẳng hạn như Mức độ toàn vẹn của Vista / Win7.

Để tổng hợp những điểm khác biệt:

  • DAC dựa trên quyền cá nhân, RBAC dựa trên quyền cấp "nhóm"
  • DAC do chủ sở hữu dữ liệu đặt, RBAC do / s chủ sở hữu hệ thống [thường là nhà phát triển xác định quyền truy cập được cấp cho mỗi vai trò và quản trị viên vận hành đặt người dùng vào các vai trò]
  • Định nghĩa DAC thường được gắn với dữ liệu / tài nguyên, trong khi RBAC thường được định nghĩa ở hai nơi: trong mã / cấu hình / siêu dữ liệu [quyền truy cập vai trò], và trên đối tượng người dùng [hoặc bảng - vai trò của mỗi người dùng].
  • Mặt khác, vai trò RBAC được quản lý tập trung [ai được liên kết với vai trò nào], trong khi DAC được quản lý "trên tài nguyên" [tức là bạn quản lý từng tài nguyên riêng lẻ].
  • Định nghĩa về quyền đối với vai trò thường tĩnh trong RBAC và người dùng chỉ được cấp vai trò; trong DAC, quyền đối với tài nguyên thường bị thay đổi trong thời gian chạy.
  • DAC nên được coi là liệt kê "ai có quyền truy cập vào dữ liệu của tôi" và RBAC xác định "người dùng này có thể làm gì".

Chủ Đề