Các dịch vụ vi mô đằng sau Cổng API có cần xác minh Mã thông báo truy cập không?


10

Tôi có một loạt các dịch vụ siêu nhỏ chỉ có thể truy cập được bên ngoài thông qua API Gateway.

API Gateway của tôi được thiết lập dưới dạng Tài nguyên OAuth và xác thực mã thông báo (Kiểm tra chữ ký, v.v.) trước khi chuyển yêu cầu xuôi dòng tới một hoặc nhiều dịch vụ siêu nhỏ.

Trong khi các dịch vụ siêu nhỏ của tôi cần mã thông báo để xác minh phạm vi và khiếu nại, thì bây giờ có cần dịch vụ này để xác thực mã thông báo không?

Có vẻ hơi quá mức nhưng tôi không thể tìm thấy bất kỳ lời khuyên trực tuyến nào về kịch bản này.

Việc xác thực mã thông báo tại cổng API có đủ tốt không? Hoặc là cách tốt nhất để xác nhận lại sau?


1
Có phải các dịch vụ tương tự có thể truy cập khi bỏ qua cổng nội bộ ?
Greg Burghardt

I cannot find any advice online about this scenario.Bởi vì nó phụ thuộc vào một số yếu tố khác nhau tùy theo dự án. Có lẽ trong hầu hết các phát triển ngoài kia tự xưng là kiến ​​trúc MS, họ không cần nó. Hơn nữa, trong các kiến ​​trúc như vậy, cần có một máy chủ xác thực sẽ thực hiện việc này thay vì các dịch vụ (và thay vì cổng tất nhiên). Là máy chủ xác thực người cho phép yêu cầu vượt qua hay không.
Laiv

Câu trả lời:


3

Nếu bất kỳ cuộc gọi nội bộ nào cũng có thể bỏ qua cổng xác thực mã thông báo trong mọi dịch vụ siêu nhỏ hoặc buộc tất cả các cuộc gọi - nội bộ và bên ngoài - phải đi qua cổng.

Cá nhân tôi cũng không tin tưởng các cuộc gọi nội bộ. Cho họ đi qua cổng, thậm chí đến mức giới hạn lưu lượng thông qua các quy tắc tường lửa. Biết ai đang nói chuyện với ai, và tại sao. Điều này giúp hạn chế bề mặt tấn công của bạn nếu ai đó vi phạm mạng của bạn.

Điều này không giới thiệu một điểm thất bại duy nhất, nhưng rủi ro này có thể được giảm thiểu bằng cách tải các máy chủ cân bằng tải và có các máy chủ chuyển đổi dự phòng trong trường hợp có vấn đề nghiêm trọng.

Mặt khác, nếu mọi dịch vụ xác thực mã thông báo và bất kỳ điều gì về quy trình xác thực sẽ thay đổi, bạn có dịch vụ N + 1 để cập nhật.


Tôi đã nghe lập luận rằng "bạn cũng không thể tin tưởng lưu lượng truy cập nội bộ." Nhưng việc phơi bày một ứng dụng cho một số lượng nhỏ người dùng (tương đối) trên mạng nội bộ thì khác xa với việc đưa ứng dụng tương tự ra Internet công cộng. Về cơ bản, nó giống như sự khác biệt giữa nam châm loa và cyclotron.
Robert Harvey

2
@RobertHarvey: Tôi nghĩ rằng lời biện minh mà tôi đã nghe về "không tin tưởng lưu lượng truy cập nội bộ" không phải là lưu lượng truy cập hợp pháp vì nó đang chặn mạng trong trường hợp bị xâm nhập. Đặc biệt nếu hệ thống của bạn xử lý thông tin PII, sức khỏe, tài chính hoặc nhạy cảm. Nếu ai đó đột nhập vào họ bị giới hạn trong những gì khác họ có thể nói chuyện.
Greg Burghardt

Nếu ai đó xâm nhập vào hệ thống của bạn, xác thực mã thông báo sẽ là vấn đề ít hơn của bạn. Việc bạn nên hay không xác thực mã thông báo trong một mạng đáng tin cậy (và không thể truy cập bởi người nước ngoài) có thể tùy thuộc vào loại xác thực chúng tôi thực hiện và nếu có một lần nữa không thực hiện xác thực. Ví dụ, hiệu suất. Trở lại lý luận của bạn. Bạn sẽ triển khai TLS trong một mạng riêng? Bạn sẽ mã hóa thông tin liên lạc giữa hai thành phần chạy cạnh nhau? Câu trả lời có khả năng là phụ thuộc .
Laiv
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.