Các phương thức xác thực Cổng API AWS
Cho đến nay, chúng tôi đã đề cập khá nhiều về cách ứng dụng của chúng tôi được kiến trúc. Nếu bạn bỏ lỡ việc theo dõi nó, hãy xem bài đăng blog khác của chúng tôi trong loạt bài này Show
Bạn có nhiều tùy chọn khác nhau khi triển khai ủy quyền và xác thực. Chúng tôi không có yêu cầu cụ thể nào ngoài việc cần phải có một số thứ và nó không thể là “tĩnh” (e. g. tên người dùng và mật khẩu được mã hóa cứng được chuyển cùng với yêu cầu mọi thứ) Chúng tôi đã xem xét các tùy chọn khác nhau trước khi giải quyết trên Cổng API. Là một ứng dụng NodeJS, Passport là lựa chọn phổ biến nhất. Tôi cũng đã xây dựng phương thức xác thực của riêng mình cho một dự án khác (ghi chú bên lề. không bao giờ làm điều này). Tuy nhiên, cuối cùng, chúng tôi muốn một cái gì đó mà chúng tôi không phải duy trì sức khỏe của Cổng API để giải cứuCổng API dường như hoàn toàn phù hợp ngoại trừ một điều. vào thời điểm đó, bạn không thể đặt Cổng API trước các tài nguyên bên trong VPC Sau một số cuộc thảo luận, chúng tôi quyết định đánh cược. Ứng dụng của chúng tôi chỉ chạy trong môi trường phòng thí nghiệm và sẽ mất một thời gian trước khi nó được đưa ra internet công cộng. Đồng thời, chúng tôi đã quyết định rằng bất cứ điều gì chúng tôi sử dụng để ủy quyền và xác thực, nó sẽ phải được triển khai theo cách tương tự như API Gateway; . Chức năng này sẽ không được nhúng trong mã ứng dụng của chúng tôi. Nếu chúng tôi chọn thứ gì đó hoạt động theo cách tương tự, thì việc chuyển đổi sẽ dễ dàng hơn nếu API Gateway trở nên khả thi Vì vậy, chúng tôi đã chờ đợi và nghiên cứu các lựa chọn khác. Chúng tôi không biết liệu AWS có bao giờ hỗ trợ kịch bản như vậy không. Tất cả những gì chúng tôi có thể tìm thấy là một số bài đăng diễn đàn ngẫu nhiên từ diễn đàn chính thức nói rằng họ đang xem xét nó Ý tôi là… NLB để giải cứuVào cuối năm 2017, chúng tôi đã có một chiếc phao cứu sinh. AWS đã phát hành Bộ cân bằng tải mạng của họ, cuối cùng đã cho chúng tôi khả năng hiển thị tài nguyên bên trong VPC của chúng tôi thông qua Cổng API Làm thế nào để làm điều này xảy ra Chúng tôi sẽ tạo các mẫu hình thành đám mây cho phần sau… 1. Cân bằng tải mạng
Cân bằng tải mạng và các mục tiêu của nóCFT cho bộ cân bằng tải khá dễ hiểu. Nó trông như thế này Description: Load Balancer for ApplicationAPI Chỉ cần một tên Description: Load Balancer for ApplicationAPI 9, có thể là bất cứ thứ gì có ý nghĩa với bạn. Cũng được cung cấp là danh sách các mạng con mà bạn muốn dịch vụ ECS của mình chạy trong đó
Tiếp theo chúng ta cần thiết lập các mục tiêu. CFT trông giống như thế này Description: Load Balancer for ApplicationAPI Thuộc tính Description: Load Balancer for ApplicationAPI 0 rất quan trọng để làm việc này với Fargate. Nhóm mục tiêu của NLB cần biết rằng nó đang cân bằng giữa các Địa chỉ IP, thay vì id cá thể. Mục tiêu sẽ được liên kết với dịch vụ ECS trong một CFT khác và chính từ kết nối đó, Fargate sẽ có thể liên kết Địa chỉ IP với các nhóm mục tiêu của bộ cân bằngLưu ý rằng cũng có một Description: Load Balancer for ApplicationAPI 1, tạo trình nghe cho NLB của chúng tôi, kiểm tra các yêu cầu kết nối và chuyển tiếp chúng đến các nhóm mục tiêuCổng APICổng API này nằm trước một ứng dụng đang chạy trong Fargate. Ứng dụng đó có các tuyến được hiển thị và trả về mã trạng thái HTTP hợp lệ tùy thuộc vào tình huống. Với điều đó, Cổng API có thể đơn giản cho phép các yêu cầu và phản hồi chuyển qua lại
Có thể xác định một loạt Description: Load Balancer for ApplicationAPI 2 trong CFT cho Cổng API của bạn để xác định tuyến đường, nhưng có một số điều bạn không thể tận dụng nếu đi theo cách đó, chẳng hạn như đặt Liên kết VPCVì vậy, bạn sẽ cần xác định một Description: Load Balancer for ApplicationAPI 0 với một Description: Load Balancer for ApplicationAPI 1 chứa định nghĩa cho các tuyến đường của bạn. Cách dễ nhất để khởi động CFT này là xây dựng Cổng API theo cách thủ công trong bảng điều khiển, triển khai nó và sau đó sử dụng tùy chọn xuất. Để làm điều đó, hãy chọn Giai đoạn > [tên sân khấu] > Xuất > Xuất dưới dạng Swagger + Tiện ích mở rộng cổng API. Sao chép/Dán đầu ra dưới dạng Description: Load Balancer for ApplicationAPI 1 cho Description: Load Balancer for ApplicationAPI 0 của bạn và bạn sẽ tiếp tục
Bước cuối cùng, hãy xóa Cổng API bạn vừa tạo. Bạn sẽ triển khai nó bằng CFT vào lần tới Sau khi khởi động mẫu và tiếp tục phát triển nó, nó trông giống như thế này Description: APIGateway in front of ApplicationAPI Điều đầu tiên được xác định là Liên kết VPC. Đây là thứ sẽ cho phép Cổng API của bạn giao tiếp với ứng dụng đang chạy trong VPC của bạn. Nó khá đơn giản, điều duy nhất nó cần biết là NLB Arn Tiếp theo là Description: Load Balancer for ApplicationAPI 5 của chúng tôi. Tất cả các đường dẫn của chúng tôi đều được xác định, cùng với từng động từ được hỗ trợ và loại nội dung mong đợi
Một vài điều cần lưu ý 1. Đặt Description: Load Balancer for ApplicationAPI 7 thành Description: Load Balancer for ApplicationAPI 8 (cũng lưu ý khối định nghĩa Description: Load Balancer for ApplicationAPI 9 ở cuối) là thứ cho phép bạn bảo mật các tuyến đường của mình bằng quyền IAM. 2. Định nghĩa cho Description: APIGateway in front of ApplicationAPI0 KHÔNG nên có bất kỳ bảo mật nào xung quanh nó. Trình duyệt đánh nó theo quyết định của họ và không có cách nào để thêm tiêu đề ủy quyền vào yêu cầu đó. Nó phải được để mở. 3. Khối này cho phép các bài đăng dạng nhiều phần. Đây là điều mà API Gateway không hỗ trợ cho đến gần đây và là một ví dụ khác về tính năng quan trọng mà bạn có thể không nhận ra là có sẵn. Description: Load Balancer for ApplicationAPI 44. Cuối cùng, các khối dành cho lỗi 4XX và 5XX cho phép các lỗi được đưa vào ứng dụng chuyển đến ứng dụng khách. Mỗi lỗi được đưa ra trong ứng dụng đều thân thiện với HTTP. (Sử dụng mô-đun Boom) Triển khai cổng APIChúng tôi có một CFT riêng để triển khai Cổng API. Nó rất đơn giản, nó không đáng để thảo luận. Đây là mẫu trong trường hợp bạn tò mò Description: Load Balancer for ApplicationAPI 5quyền IAMNói nhanh về quyền API. Bạn sẽ muốn áp dụng quyền Description: APIGateway in front of ApplicationAPI1 cho bất kỳ thứ gì cần quyền truy cập vào API này. Nó sẽ giống như thế này Description: Load Balancer for ApplicationAPI 7Description: APIGateway in front of ApplicationAPI2 là nơi id thực tế cho API của bạn được cho là đi. Bạn có toàn quyền khóa các API của mình. Chính sách trên cấp quyền truy cập không hạn chế vào API, nhưng bạn có thể khóa mọi thứ theo tài nguyên và động từSự kết luận Rõ ràng, một vài mảnh bị thiếu. Bạn sẽ cần một ứng dụng có NLB ở phía trước và bạn vẫn cần xác định tất cả các quyền IAM của mình. Nhưng đó là những yếu tố duy nhất cho ứng dụng của bạn. Hy vọng rằng bạn có thể lấy những gì bạn đã học được ở đây và áp dụng nó vào ứng dụng của mình Cuối cùng, nếu có bất cứ điều gì không rõ ràng, xin vui lòng cho tôi biết trong phần bình luận bên dưới. Chúng tôi hiểu việc đọc các bài đăng trên blog thiếu thông tin quan trọng mà bạn đang tìm kiếm có thể gây khó chịu như thế nào và chúng tôi muốn cung cấp thông tin toàn diện Làm cách nào để triển khai xác thực trong API Gateway?API Gateway hỗ trợ nhiều phương thức xác thực phù hợp với các ứng dụng và trường hợp sử dụng khác nhau. Cổng API sử dụng phương thức xác thực mà bạn chỉ định trong cấu hình dịch vụ của mình để xác thực các yêu cầu gửi đến trước khi chuyển chúng đến phần phụ trợ API của bạn .
Cổng API xử lý xác thực như thế nào?Xác thực cổng API là một cách quan trọng để kiểm soát dữ liệu được phép truyền bằng API của bạn. Cổng API là gì? . it authenticates that a particular consumer has permission to access the API, using a predefined set of credentials.
Các loại xác thực khác nhau trong API là gì?Các phương thức xác thực API phổ biến . Xác thực cơ bản HTTP. Cách đơn giản nhất để xử lý xác thực là thông qua việc sử dụng HTTP, trong đó tên người dùng và mật khẩu được gửi cùng với mọi lệnh gọi API. . Xác thực khóa API. . Xác thực OAuth. . Không có chứng thực Cổng API có hỗ trợ xác thực cơ bản không?Bạn có thể định cấu hình Cổng API để hỗ trợ Xác thực cơ bản và Cổng API hỗ trợ tích hợp với bất kỳ dịch vụ AWS nào. |