Ủy quyền người dùng với microservice


12

Các dịch vụ siêu nhỏ có nên chịu trách nhiệm xử lý ủy quyền của riêng họ hay bạn nghĩ rằng tốt hơn là nên có một dịch vụ ủy quyền riêng được chia sẻ trên tất cả hoặc một tập hợp con (trong cùng một miền kinh doanh) của microservice?

Đối với tôi điều sau có ý nghĩa hơn vì nó giúp áp dụng các thay đổi, thực thi chính sách dễ dàng hơn; đó là DRY, v.v. Tuy nhiên, nó có thể dễ dàng thoát khỏi tầm tay bởi tất cả các loại dịch vụ bỏ quy tắc của họ vào một nơi, và cũng lo ngại về chi phí mạng.

Có suy nghĩ gì không?

Câu trả lời:


7

Tôi sẽ sử dụng một hệ thống xác thực trung tâm, thống nhất và có các quyền / số liệu thống kê riêng cho từng microservice (giống như cách tôi chưa thể nâng cấp trên trang web trao đổi ngăn xếp này nhưng tôi có thể tràn vào ngăn xếp trong khi sử dụng hệ thống xác thực trao đổi ngăn xếp trung tâm). Một trong những dự án hiện tại của tôi sẽ liên quan đến phương pháp này trong tương lai gần, sẽ rất tốt; công việc phát triển trước đó liên quan đến việc tạo ra một hệ thống tuân thủ HIPPA, đòi hỏi mức ủy quyền / xác thực thứ hai và gây khó chịu về thời gian đối với việc ủy ​​quyền chuỗi daisy từ các thành phần riêng biệt nhưng không thể tách rời về mặt chức năng của hệ thống. Quá trình gỡ lỗi liên quan đến niềm vui ít hơn nhiều so với đăng nhập oauth đơn giản hoặc api với các tiêu đề appid và x-auth.

Việc sử dụng nào phụ thuộc vào các yêu cầu cụ thể của lộ trình phát triển, nhưng tôi sẽ chọn cách tiếp cận đơn giản hơn nếu có thể để tránh quá nhiều chi phí và thời gian / nỗ lực phát triển.


Chúng tôi sử dụng OAuth2 để xác thực và tôi muốn tuân theo cùng một nguyên tắc - đó là, có một dịch vụ trung tâm với một trách nhiệm duy nhất, được xác định rõ ràng - để ủy quyền, thay vì sao chép chức năng và phân tán logic trên các dịch vụ. Đối với tôi đó là một sự vi phạm ranh giới tên miền. Mặc dù vậy, tôi đồng ý rằng điều đó có nghĩa là chúng ta sẽ phải phân tách các quy tắc dịch vụ (ala stackoverflow, lập trình viên, v.v.).
morcmarc

2
Bạn có khả năng có thể có các quyền toàn cầu bị ghi đè bởi các quyền cụ thể của dịch vụ, hữu ích nếu một số dịch vụ siêu nhỏ cốt lõi sử dụng các quyền tương tự. Các quyền cụ thể của microservice có lẽ nên được lưu trữ trong cơ sở hạ tầng ứng dụng cho microservice đó để tránh các vấn đề về hiệu suất tiềm năng cho dịch vụ xác thực trung tâm.
Jonathan Voss

4

Mỗi microservice không cần phải xác thực riêng, nhưng nó cần phải có ủy quyền riêng.

Nguồn

Và điều này làm cho ý nghĩa hoàn hảo. Tôi cho rằng không có nghi ngờ gì về xác thực trung tâm. Nhưng ủy quyền là khá khó hiểu.

Xem xét rằng số lượng dịch vụ vi mô có thể tăng lên đến hàng trăm, hàng nghìn, Dịch vụ ủy quyền trung tâm chỉ chịu trách nhiệm liệt kê các quyền, nhưng không xác thực các quyền đó. Dịch vụ vi mô cá nhân có thể phải tiếp cận khác nhau để xác nhận sự cho phép.

Dịch vụ ủy quyền trung tâm này, có thể cần lấy các mô hình từ các dịch vụ khác nhau và tiếp cận khác nhau để đưa ra quyết định, nó có thể trông dễ dàng và đẹp mắt ngay từ đầu. Nhưng có thể là sự hỗn loạn sau này.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.