hoangdinhvinhvinh
Junior Member
Hi các bác, em đang tập tành upgrade project cá nhân từ monolithic lên microservices (mục đích vọch vạch) (C# .NET 8)
Hiện em đang mắc ở chỗ authentication và authorization.
Về authentication thì em sử dụng JWT. Còn authorization em áp dụng RBAC, có thể CRUD role cơ bản(có thể cập nhật policy cho role) -> Check quyền trên endpoint bằng cách lấy ra tất cả role cũng như tất cả policy của user -> nếu có thì OK, không thì 403
Trước là monolithic thì em query thẳng db lấy ra các role policies đơn giản hơn.
Còn hiện tại là microservices thì em đang chưa biết xử lý quyền cho từng service như thế nào. Em mới nghĩ được 2 cách:

Hiện em đang mắc ở chỗ authentication và authorization.
Về authentication thì em sử dụng JWT. Còn authorization em áp dụng RBAC, có thể CRUD role cơ bản(có thể cập nhật policy cho role) -> Check quyền trên endpoint bằng cách lấy ra tất cả role cũng như tất cả policy của user -> nếu có thì OK, không thì 403
Trước là monolithic thì em query thẳng db lấy ra các role policies đơn giản hơn.
Còn hiện tại là microservices thì em đang chưa biết xử lý quyền cho từng service như thế nào. Em mới nghĩ được 2 cách:
- Cho user(bao gồm cả policies) lên redis làm distributed cache rồi lấy về để check, nhưng mà lại hơi vướng ở case nếu cập nhật role policy thì các user trên redis phải cập nhật toàn bộ(em nghĩ là nó ko hay lắm)
- Lúc gọi hàm check quyền thì dùng grpc ở service user để check


