Chúng tôi dự định tái cấu trúc hệ thống công ty của chúng tôi thành một hệ thống dựa trên dịch vụ vi mô. Các dịch vụ vi mô này sẽ được sử dụng bởi các ứng dụng nội bộ của công ty chúng tôi và các đối tác bên thứ 3 nếu cần. Một cho đặt phòng, một cho các sản phẩm, vv
Chúng tôi không chắc chắn làm thế nào để xử lý vai trò và phạm vi. Ý tưởng là tạo ra 3 vai trò người dùng cơ bản như Quản trị viên, Đại lý và Người dùng cuối và để các ứng dụng khách hàng điều chỉnh phạm vi nếu cần.
- Quản trị viên có thể tạo, cập nhật, đọc và xóa tất cả các tài nguyên theo mặc định (cho công ty của họ).
- Đại lý có thể tạo, cập nhật và đọc dữ liệu cho công ty của họ.
- Người dùng cuối có thể tạo, cập nhật, xóa và đọc dữ liệu, nhưng không thể truy cập các điểm cuối giống như các tác nhân hoặc quản trị viên. Họ cũng sẽ có thể tạo hoặc sửa đổi dữ liệu, chỉ không ở cùng cấp độ với các tác nhân hoặc quản trị viên. Ví dụ: người dùng cuối có thể cập nhật hoặc đọc thông tin tài khoản của họ, giống như đại lý sẽ có thể làm điều đó cho họ, nhưng họ không thể xem hoặc cập nhật ghi chú quản trị viên.
Giả sử các đại lý theo mặc định có thể tạo, đọc và cập nhật từng tài nguyên cho công ty của họ và đó là phạm vi tối đa có thể được yêu cầu cho mã thông báo / phiên của họ, nhưng các nhà phát triển ứng dụng khách (người tiêu dùng API) đã quyết định rằng một trong các đại lý của họ có thể chỉ đọc và tạo một số tài nguyên nhất định
Có phải là một cách thực hành tốt hơn để xử lý vấn đề này trong bảo mật nội bộ của chúng tôi và để họ viết dữ liệu đó trong cơ sở dữ liệu của chúng tôi hoặc để khách hàng xử lý nội bộ đó bằng cách yêu cầu mã thông báo với phạm vi nhỏ hơn và để họ viết đại lý nào sẽ có phạm vi trong cơ sở dữ liệu của họ ? Bằng cách này, chúng tôi sẽ chỉ phải theo dõi phạm vi mã thông báo.
Nhược điểm của điều này là nhóm của chúng tôi cũng sẽ cần tạo ra các cơ chế truy cập được tinh chỉnh trong các ứng dụng nội bộ của chúng tôi.
Với cách nghĩ này, các dịch vụ vi mô và hệ thống ủy quyền của họ không nên bị làm phiền với nhu cầu của khách hàng, vì họ chỉ là người tiêu dùng và không phải là một phần của hệ thống (mặc dù một số người tiêu dùng đó là ứng dụng nội bộ của chúng tôi)?
Đây có phải là một cách tiếp cận tốt?
payment:[read]
, người bán cópayment: [create]
. Bạn có tổng hợp quyền trong trường hợp này?