2016-03-01 16 views
6

Tôi đang tạo một máy chủ API REST ít hơn bằng cách sử dụng Cổng API AWS và AWS Lambda. Trong khi các điểm kết thúc đã được tạo và liên kết với các hàm Lambda tương ứng, bước tiếp theo là thêm lớp xác thực để xác thực người dùng qua email và mật khẩu. Từ những gì tôi có thể hiểu được từ tài liệu, các phương thức API Gateway có thể hỗ trợ truy cập dựa trên API Key hoặc truy cập dựa trên IAM. Nhưng tôi không thể hiểu cách thực hiện an toàn việc xác thực bằng cách sử dụng các khóa API.Làm cách nào để xác thực người dùng cho Cổng API AWS?

Tôi có phải tạo máy chủ để thực hiện xác thực và quản lý người dùng không? Có cách nào này có thể là một máy chủ hoàn chỉnh ít kết thúc để kết thúc ứng dụng? Bất kỳ tài nguyên nào để chỉ đúng hướng sẽ được đánh giá cao. Tôi đang tìm kiếm tại this document tại thời điểm

Trả lời

7

Một thông báo gần đây là API Gateway Tuỳ chỉnh ủy quyền:. http://docs.aws.amazon.com/apigateway/latest/developerguide/use-custom-authorizer.html

"bạn có thể kiểm soát quyền truy cập vào API của bạn sử dụng bearer chiến lược xác thực thẻ, chẳng hạn như OAuth hoặc SAML Để làm như vậy, bạn cung cấp và cấu hình một ủy quyền tùy chỉnh, một chức năng Lambda bạn sở hữu, cho API gateway sử dụng để cho phép các yêu cầu của khách hàng cho các API cấu hình"

một nguồn lực tốt mà tôi nghĩ đã được viết trước khi phát hành tuỳ chỉnh ủy quyền: https://auth0.com/docs/integrations/aws-api-gateway/part-2

+0

Nhưng cách thay thế xác thực cơ bản htaccess bằng OAuth, SAML hoặc Lambda. Những phương pháp này rất phức tạp, khó hiểu và tốn kém. – Peter

1

Cổng API AWS cũng có thể được xác thực bằng cách sử dụng các khóa API. Thực hiện theo các bước bên dưới: -

  1. Đặt khóa API bắt buộc trong phương thức tài nguyên trong Cổng API.
  2. Tạo Gói sử dụng và thêm các giai đoạn API được liên kết
  3. Tạo khóa API và liên kết với Gói sử dụng.

Sau đó, khi API Gateway được gọi là khóa API cần phải được chuyển làm Tiêu đề.

HttpHeaders headers = new HttpHeaders(); 
headers.setAccept(Arrays.asList(new MediaType[]{MediaType.APPLICATION_JSON})); 
headers.setContentType(MediaType.APPLICATION_JSON); 
headers.set("x-api-key", apiKey); 
+1

Tài liệu AWS khuyên bạn không nên sử dụng phương pháp này để ủy quyền cho người dùng. – Saar

+0

Từ https://docs.aws.amazon.com/apigateway/latest/developerguide/api-gateway-api-usage-plans.html#api-gateway-setup-api-key-with-console "Để xác thực người dùng và ủy quyền, không sử dụng khóa API. Sử dụng vai trò IAM, người ủy quyền tùy chỉnh hoặc nhóm người dùng Amazon Cognito. " – Daniel

Các vấn đề liên quan