web-dev-qa-db-ja.com

AWS API Gatewayのユーザーを認証する方法は?

サーバーを作成していますREST AWS API GatewayとAWS Lambdaを使用したAPI。エンドポイントが作成され、対応するLambda関数とリンクされていますが、次のステップは認証レイヤーを追加してユーザーを認証することですドキュメントから理解できることから、API GatewayメソッドはAPIキーベースのアクセスまたはIAMベースのアクセスをサポートできますが、APIキーを使用して認証を安全に実装する方法を理解できませんでした。

認証を行ってユーザーを管理するためのサーバーを作成する必要がありますか?これが完全なサーバーレスエンドツーエンドアプリケーションになる方法はありますか?正しい方向を指すためのリソースは大歓迎です。私は このドキュメント を見ています

17
Mandeep Singh

最近の発表はAPI Gateway Custom Authorizersでした: http://docs.aws.Amazon.com/apigateway/latest/developerguide/use-custom-authorizer.html

「OAuthまたはSAMLなどのベアラートークン認証戦略を使用して、APIへのアクセスを制御できます。これを行うには、API Gatewayに対して、独自のLambda関数であるカスタム認証を提供および構成します。構成されたAPIのクライアント要求を許可するために使用する」

カスタムオーソライザーのリリース前に書かれた別の優れたリソース: https://auth0.com/docs/integrations/aws-api-gateway/part-2

13
Ryan

AWS API Gatewayは、APIキーを使用して認証することもできます。以下の手順に従ってください:-

  1. API GatewayのResourceメソッドでAPI Key Requiredを設定します。
  2. 使用プランを作成し、関連するAPIステージを追加します
  3. APIキーを作成し、使用プランに関連付けます。

その後、API Gatewayが呼び出されると、APIキーをヘッダーとして渡す必要があります。

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