Kiến trúc microservice - sử dụng Auth Server làm máy chủ Tài nguyên người dùng


9

Tôi đang thiết kế một ứng dụng dựa trên kiến ​​trúc microservice,

Trong ứng dụng này, tôi sẽ cần Auth microservice,

Ngoài ra tôi sẽ cần lưu trữ thêm một số thông tin Người dùng như, có lẽ, nhiều địa chỉ, ảnh đại diện, v.v.

Điều này dẫn đến ý tưởng có hai dịch vụ siêu nhỏ - một cho Auth và một dịch vụ khác, Người dùng, có thể lưu trữ thông tin bổ sung của Người dùng,

Cho đến nay, tôi có những ý tưởng sau:

  1. Cho phép dịch vụ xác thực cũng là một máy chủ tài nguyên chứa thông tin Người dùng bao gồm địa chỉ bổ sung, có thể là hình đại diện, v.v ... Đây là một giải pháp tiện lợi vì cho phép mọi thứ liên quan đến Người dùng ở một nơi và giảm độ phức tạp cho các hoạt động như đăng ký mới Người dùng, xóa người dùng. Tuy nhiên, giải pháp này dường như mâu thuẫn với khái niệm microservice, nhưng đối với tôi giải pháp này là hấp dẫn nhất

  2. Có hai dịch vụ siêu nhỏ khác nhau - Auth và Người dùng. Auth sẽ chỉ chịu trách nhiệm xử lý các mã thông báo và sẽ không lưu trữ bất kỳ dữ liệu nào liên quan đến Người dùng. Vì vậy, khi nhận được yêu cầu mã thông báo, dịch vụ Auth gọi Người dùng để nhận dữ liệu Người dùng và đưa ra quyết định

  3. Có hai dịch vụ siêu nhỏ khác nhau - Auth và Người dùng. Auth sẽ chịu trách nhiệm xử lý các mã thông báo và cũng lưu trữ một phần thông tin người dùng liên quan đến Xác thực (có thể là mật khẩu, vai trò). Dịch vụ người dùng sẽ chứa tất cả các thông tin khác như địa chỉ bổ sung, hình đại diện, v.v ... Cách tiếp cận này đối với tôi có vẻ quá phức tạp vì nó yêu cầu xóa phức tạp Người dùng / tạo hoạt động Người dùng mới

Bây giờ, tôi sẽ cần chọn một trong những giải pháp này nhưng tôi đã mất và không chắc chắn giải pháp nào trong số đó là đúng,

Sẽ đánh giá cao bất kỳ lời khuyên liên quan đến điều này,

Cảm ơn


1
# 3, Xin chúc mừng, bạn đã nhận ra rằng có thêm một yếu tố trong mô hình của bạn. Tài khoản . Tôi không biết tại sao mọi người cố gắng liên kết bảo mật với người dùng trực tiếp khi rõ ràng rằng bảo mật là bối cảnh bị ràng buộc bởi chính nó. Giải mã dữ liệu bảo mật từ Người dùng và ứng dụng của bạn sẽ sẵn sàng thay đổi mô hình bảo mật hiện tại bằng bất kỳ mô hình nào khác, mà không gây rối với tên miền. Thậm chí cho phép nhiều hơn một mô hình bảo mật có thể chỉ cần tách rời 2 mối quan tâm này :-)
Laiv

Câu trả lời:


7

3 là câu trả lời đúng.

Máy chủ Auth của bạn xác thực người dùng, Máy chủ người dùng của bạn có thể được đặt tên tốt hơn là 'UserProfiles'

Bạn sẽ thấy rằng nhiều người dùng của bạn sẽ là người có hồ sơ, nhưng bạn cũng sẽ có người dùng dịch vụ cho các API khác hoặc có thể là các khóa API đơn giản, cũng sử dụng máy chủ xác thực để xác thực nhưng không có hồ sơ tương ứng.

Ngoài ra, bạn có thể sẽ thấy rằng có rất nhiều máy chủ và khung Auth bạn có thể sử dụng, nhưng UserProfile sẽ được tùy chỉnh theo nhu cầu của bạn. Việc thêm một useridhồ sơ tùy chỉnh thường dễ dàng hơn là tích hợp một hồ sơ tùy chỉnh với DB xác thực tiền tố

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.