Avatar
0
Nguyễn Thái Sơn Professional
Nguyễn Thái Sơn Professional
có nên thiết kế API Gateway kết hợp authentication
Anh ơi, về mặt triển khai API Gateway có mục đích là để routing đến các internal services, authentication và authorization. Như vậy, để authentication mình phải cần kết nối Database để lưu session, user và password và token để kiểm tra đăng nhập, và xác thực JWT trong mỗi HTTPs do người dùng cuối gửi lên. Nhưng đa số các kiến trúc Microservice em thấy họ không dùng Database để lưu session, user... vậy họ đã xử lý phần authentication này như thế nào ạ

  • Answer
authentication
Remain: 5
1 Answer
Avatar
tvd12 Professional
tvd12 Professional

Nhưng đa số các kiến trúc Microservice em thấy họ không dùng Database để lưu session, user.

Em thấy đa số ở đâu nhỉ?

Nhìn chung trong mọi ứng dụng, tổ chức, thông tin của người dùng luôn là thứ quan trọng nhất, là thứ có thể kiếm được ra tiền và cần được bảo mật theo luật an toàn thông tin của quốc gia ứng dụng được triển khai. Chính vì vậy mà thường sẽ có 1 hệ thống quản lý thông tin user tập trung, tuy nhiên thông tin của user vẫn được lưu ở db thôi, cũng có thể lưu cache ở redis nữa để truy xuất nhanh.

Tiếp đến, khi các ứng dụng muốn sử dụng thông tin của user thì sẽ phải thông qua API do user service cấp, và nó cũng sẽ hạn chế tôi đa việc cấp thông tin thừa. Chính vì vậy ở mỗi một ứng dụng lại có những cách khác nhau để lưu thông tin về session và token của user. Session thì có thể lưu cache ở server hoặc lưu ở DB hoặc redis ... token thì có thể sử dụng jwt token hoặc lưu ở DB redis tương tự như session em ạ.

Về phần xử lý authentication thì sẽ xử lý riêng trên từng ứng dụng và có thể kết nối đến hệ thống user tập trung thông qua Oauth2, kiểu như stackask này đang dùng google hay facebook này em. Hoặc nếu không muốn phức tạp cho user, thì có thể sử dụng cơ chế refresh - access token này cũng được em ạ.

  • 0
  • Reply