Nhảy đến nội dung

Quản lý quyền truy cập của người dùng

Tổng quan

Hệ thống quản lý quyền truy cập của người dùng được thiết kế để kiểm soát chi tiết ai có quyền truy cập vào các tài nguyên của ứng dụng. Hệ thống sử dụng mô hình quản lý quyền truy cập dựa trên vai trò (RBAC), trong đó người dùng được phân vào các nhóm và quyền truy cập được cấp cho các nhóm này. Điều này đảm bảo quản lý quyền truy cập hiệu quả và an toàn.

Quản lý nhóm

Tạo nhóm mới

  1. Chuyển đến phần nhóm:
    • Mở tab Groups.
  2. Thêm nhóm:
    • Nhấn nút Create Group.
    • Cung cấp tên mô tả và nhãn.
    • Gán quyền truy cập ban đầu.
cảnh báo

Trong dự án mới, luôn có một nhóm Guest được tạo mặc định.

Kế thừa quyền truy cập

Trong tab "Groups", các nhóm đã tạo trước đó được trình bày theo dạng phân cấp, nhóm mới tạo có thể được kết nối với nhóm đã tạo trước đó để kế thừa quyền từ nhóm cha.

cảnh báo

Nếu trong nhóm cha có hạn chế về đường dẫn, và trong nhóm con cũng có hạn chế tương tự bị ghi đè, thì hạn chế cuối cùng sẽ là hạn chế của nhóm con, nhưng chỉ trong trường hợp nhóm cha không có tùy chọn "Quyền cuối cùng".

Nhóm duy nhất trong chuỗi

Việc chỉ định nhóm chỉ có thể thực hiện nếu không có nhóm cha hoặc nhóm con nào được chọn.

Thay đổi quyền truy cập

Tab "Permissions" là tab chính để chỉnh sửa quyền truy cập.

Nhóm quyền

Nếu bạn đã chỉ định nhóm cha để kế thừa quyền, tất cả thông tin về quyền đã thiết lập sẽ được hiển thị trong bảng ở trên, việc chỉnh sửa quyền kế thừa là không được phép. Các quyền bao gồm các ngoại lệ và quyền không sử dụng sẽ được nhóm riêng trong cùng một bảng.

Quản lý quyền truy cập

Tạo quyền truy cập

Để bắt đầu tạo quyền, nhấn nút "Tạo quyền" trong tab "Permissions"

Quyền truy cập bao gồm sự kết hợp giữa phương thức và đường dẫn.

remove
  1. Tạo bộ quyền tối thiểu:
    • Tùy chọn này cho phép giảm thiểu nhiệm vụ tạo quyền bằng cách tạo ra bộ quyền tối thiểu cần thiết.
cảnh báo

Chỉ khả dụng nếu không có quyền nào được thiết lập trước đó

  1. Đặt hạn chế về việc phát dữ liệu:
    • Tùy chọn này chỉ áp dụng khi chọn "Tạo bộ quyền tối thiểu", đặt hạn chế về việc phát dữ liệu (10 bản ghi)
  2. Phần API:
    • Tham số bắt buộc, nếu tạo quyền mới, chỉ định đường dẫn để chọn quyền.
  3. Đường dẫn:
    • Việc chọn chỉ khả dụng sau khi chọn phần API, làm rõ đường dẫn để thiết lập quyền.
  4. Tên:
    • Trường bắt buộc để đặt tên cho quyền.
  5. Bảng "Permissions":
    • Bảng này là lựa chọn từ các phương thức HTTP cho đường dẫn đã chỉ định, với các tùy chọn "không hạn chế" và "có hạn chế về số lượng bản ghi".
cảnh báo

Đối với bất kỳ đường dẫn nào trong bảng, luôn có 4 phương thức được chỉ định: GET, POST, PUT, DELETE

  1. Điều kiện bổ sung Những điều kiện này không xuất hiện cho tất cả các đường dẫn, mà chỉ cho các "danh sách" và cho phép thiết lập các ngoại lệ cho các tài liệu nhận được.

    • Nếu, ví dụ, cần cung cấp quyền truy cập cho tất cả các trang, nhưng tạo ngoại lệ, bạn có thể nhấn nút "Chọn dữ liệu bạn muốn loại trừ". Trong cửa sổ bổ sung mở ra, bạn có thể chọn dữ liệu mà bạn muốn hạn chế quyền truy cập. Ví dụ, đối với phần API - trang, sẽ hiển thị danh sách phân cấp các trang, đối với phần thuộc tính - tương ứng là các thuộc tính.

    ####Danh sách các đường dẫn có sẵn với điều kiện bổ sung:

    • /api/content/admins/all
    • /api/content/attributes-sets
    • /api/content/attributes-sets/{marker}/attributes
    • /api/content/pages
    • /api/content/blocks
    • /api/content/forms
    • /api/content/events/subscriptions
    • /api/content/orders-storage
    • /api/content/product-statuses
    • /api/content/templates
    • /api/content/template-previews
    • /api/content/integration-collections

    Sau khi chọn dữ liệu để loại trừ, sẽ xuất hiện hai tùy chọn mới: "Loại trừ" - tùy chọn này chỉ ra rằng dữ liệu đã chọn chúng ta muốn loại trừ. "Quyền cuối cùng" - quyền này không được kế thừa trong toàn bộ chuỗi nhóm con (tùy chọn này chỉ khả dụng nếu tùy chọn "Loại trừ" được chọn).

cảnh báo

Việc chọn các điều kiện bổ sung phụ thuộc vào đường dẫn đã chọn và không phải lúc nào cũng khả dụng. Khi có lựa chọn như vậy, nó được đánh dấu bằng "Ngoại lệ có sẵn để chọn"

exceptions_marker

Danh sách các đường dẫn có sẵn để cấu hình

Mặc định, các quyền mới sẽ rơi vào phần "Quyền không sử dụng", để kích hoạt, chỉ cần chọn, nhấn vào ô kiểm bên trái tên.

Để mở trình chỉnh sửa, sử dụng nút edit

Để xóa, sử dụng remove

Hiểu quyền truy cập

Quyền truy cập là các thiết lập chi tiết xác định các hành động mà nhóm có thể thực hiện với các tài nguyên cụ thể. Chúng được tổ chức theo các phần API và có thể được làm rõ thêm bằng các điều kiện.

Tìm kiếm quyền trong bảng

Việc tìm kiếm quyền cần thiết trong bảng được thực hiện bằng cách nhập văn bản vào trường "Tìm kiếm quyền", chọn các phần API cần thiết trong bộ chọn và chọn tùy chọn "Chọn quyền không sử dụng".

Quyền tổng kết

Tab quyền tổng kết là bảng thông tin với bộ lọc theo các phần API để đơn giản hóa việc tìm kiếm.

Ví dụ: hạn chế quyền truy cập vào sản phẩm

  • Phần API: products
  • Quyền truy cập:
    • Đọc (Read): Có
    • Thêm (Add): Không
    • Chỉnh sửa (Edit): Không
    • Xóa (Delete): Không

Tích hợp với API

Hệ thống cung cấp API để quản lý người dùng, nhóm và quyền truy cập một cách lập trình. Dưới đây là các ví dụ về các thao tác điển hình.

Ví dụ về yêu cầu

/api/content/attributes-sets/product_1/attributes

Phản hồi, nếu xác thực không có token (nhóm Khách):

[
{
"type": "image",
"value": {},
"marker": "image",
"position": 1,
"listTitles": [],
"validators": {
"requiredValidator": {
"strict": true
}
},
"localizeInfos": {
"title": "image"
},
"additionalFields": []
},
{
"type": "textWithHeader",
"value": {},
"marker": "textheader",
"position": 4,
"listTitles": [],
"validators": {},
"localizeInfos": {
"title": "text header"
},
"additionalFields": []
},
{
"type": "image",
"value": {},
"marker": "image1",
"position": 18,
"listTitles": [],
"validators": {
"sizeInPixelsValidator": {
"maxX": 0,
"maxY": 0
},
"checkingFilesValidator": {
"maxUnits": "kb",
"maxValue": 0,
"minUnits": "mb",
"minValue": 0,
"extensions": []
}
},
"localizeInfos": {
"title": "image"
},
"additionalFields": []
}
]

Phản hồi, với xác thực, nơi trong quyền cho phép tất cả các trường thuộc tính:

[
{
"type": "image",
"value": {},
"marker": "image",
"position": 1,
"listTitles": [],
"validators": {
"requiredValidator": {
"strict": true
}
},
"localizeInfos": {
"title": "image"
},
"additionalFields": []
},
{
"type": "textWithHeader",
"value": {},
"marker": "textheader",
"position": 4,
"listTitles": [],
"validators": {},
"localizeInfos": {
"title": "text header"
},
"additionalFields": []
},
{
"type": "image",
"value": {},
"marker": "image1",
"position": 18,
"listTitles": [],
"validators": {
"sizeInPixelsValidator": {
"maxX": 0,
"maxY": 0
},
"checkingFilesValidator": {
"maxUnits": "kb",
"maxValue": 0,
"minUnits": "mb",
"minValue": 0,
"extensions": []
}
},
"localizeInfos": {
"title": "image"
},
"additionalFields": []
},
{
"type": "float",
"value": {},
"marker": "price",
"position": 19,
"listTitles": [],
"validators": {},
"localizeInfos": {
"title": "price"
},
"additionalFields": []
}
]

Như chúng ta thấy, người dùng đã xác thực nhận được trường bổ sung là giá.