Tôi có một API mà tôi đang trưng bày qua REST và tôi đang cân nhắc về nơi để đặt các giới hạn của chính quyền.
Tôi đã đọc rằng có một phương pháp hay nhất về việc bảo vệ lớp dịch vụ vì nó là công việc và bạn không biết nó sẽ được gọi ở đâu nhưng tôi không chắc thực hành tốt nhất là gì lớp WS.
Một ý nghĩ tôi có là tôi cần phải có một mô hình phân quyền rất tốt trên lớp dịch vụ và mô hình phân quyền rất thô trên lớp WS để giảm thiểu nguyên tắc DRY một mặt nhưng vẫn có một số khái niệm về quốc phòng theo chiều sâu.Bảo mật mùa xuân đảm bảo lớp dịch vụ, lớp dịch vụ web hoặc cả hai?
Ví dụ:
Đối với tài nguyên Users
có một UserWS
và UserService
. Quản trị viên có thể tạo/cập nhật/xóa người dùng và Người dùng có thể đọc về những người dùng khác.
Giả sử UserWS
bị ràng buộc là %root%/users
Tôi sẽ xác định intercept-url
cho url đó với quyền hạn ROLE_USER
chỉ nói rằng bạn phải là người dùng để đến đó nhưng bản thân lớp dịch vụ sẽ chỉ định cơ quan cụ thể cho các phương pháp có liên quan.
Các tùy chọn khác bao gồm:
Đặt yêu cầu uỷ quyền như nhau trên cả hai dịch vụ và WS-
Pro- Bạn sẽ lọc ra càng sớm càng những kẻ xâm nhập có thể (và tiết kiệm cho ví dụ chuyển đổi các thông số nếu bạn đang sử dụng mvc mùa xuân)
Sao chép cấu hình là vấn đề bảo trì và là lỗi dễ bị => vấn đề bảo mậtĐặt authorizati vào yêu cầu chỉ trên WS-
Pro- Lọc càng sớm càng tốt nếu đến từ WS
Con- Lớp dịch vụ có thể được sử dụng từ ngữ cảnh khác nhautấm các yêu cầu uỷ quyền duy nhất trên dịch vụ-
pro- Không sao chép
Overhead Con- của việc cho phép "thẳng thừng" yêu cầu vớ vẩn đến nơi đến lớp dịch vụ
sẽ thực sự đánh giá cao bất kỳ thông tin phản hồi về các tùy chọn
cảm ơn câu trả lời của bạn, nhưng như tôi đã nói, nếu tôi chỉ có các cơ quan CÙNG trên cả hai thì đó là sự trùng lặp và dễ bị lỗi (do đó trách nhiệm bảo mật). Giả sử tôi chú thích lớp dịch vụ, bạn nghĩ gì tôi nên đặt trên WS và tại sao? Cảm ơn – Ittai
IMHO bạn chỉ cần có một dịch vụ duy nhất có logic và có một đại diện giao diện người dùng cho dịch vụ đó và một đại biểu của WS. Bằng cách này, bạn chỉ cần chú thích dịch vụ cụ thể. Nói chung, nếu bạn không muốn sao chép, bạn phải bảo đảm thành phần chứa logic thực. – Simeon