2016-07-26 4 views
8

APIゲートウェイから、私はラムダ関数をPythonで使用して私のAPI用にcustom authorizerを作成しました。 APIゲートウェイは、構成したヘッダー(method.request.header.Authorization)を使用して、受信する認証トークンを受け渡します。しかし、私はまた、私のラムダ機能の中に元のHTTPリクエストの他のヘッダが必要です。どうすればそれらにアクセスできますか?私はevent私のラムダ関数へのオブジェクト入力上のヘッダーを見ていない。カスタム承認者のHTTPヘッダーにアクセスする方法AWSラムダ関数

How to access HTTP headers for request to AWS API Gateway using Lambda?の複製ではありません。質問はカスタムオーサライザのラムダ機能に関するものです。受信HTTPヘッダーを承認者のラムダ関数に渡すための設定オプションはありません。

AWS Documentationによれば、APIゲートウェイは、以下の入力でカスタムオーソライザを呼び出します。下に基づいて、私は私の質問が可能ではないと仮定します。しかし、回避策があるかどうかを確認したい。

 

{ 
    "type":"TOKEN", 
    "authorizationToken":"", 
    "methodArn":"arn:aws:execute-api:<regionId>:<accountId>:<apiId>/<stage>/<method>/<resourcePath>" 
} 
+0

上のオブジェクト ありえない。なぜあなたは複数のヘッダーが必要ですか?回避策:インテグレーションのラムダ機能で、自分で認証/承認を処理します。 – hellomichibye

答えて

1

残念ながら、現時点ではこれは不可能ですが、私たちはこれをサポートし、カスタムオーソライザにいくつかの改良を加える予定です。私は現時点で提供するETAを持っていません。

+0

現在、リクエストの認証(リクエストヘッダー、クエリ文字列、ペイロードからのデータがAWS V4と同様に必要な署名の検証など)を処理し、受信中に独自の検証を実際に実装するなど、ラムダ(またはAPI GatewayエンドポイントにマップされたLambdaのセット)? – Numbat

+2

私の使用例では、X-API-KEYを取得してトークン認可者と一緒に確認するためにhttpヘッダーにアクセスする必要があるため、Amazon APIゲートウェイにこの機能を追加する必要があります。すぐにあなたにこの機能を追加してお知らせください。 –

+2

1年以上経過してからの更新はありますか? –

0

これにちょうど続いて、私たちはこの機能を非常に気に入っています。 許可するヘッダーを持つだけの結果は、私たちが望むものではないにしても、同じロジックに基づいてすべてのラムダ関数を許可することができるということです。回避策として

は、我々は(最適ではない)ヘッダ内のより多くのデータを含めるソリューションについて話をしている

そうでない場合があるラムダ関数そのもので特定の許可をすることの可能性は常にありますが、その場合で、私たちは実際にカスタムAPIゲートウェイオーソライザを使用していません。

2

は、これはここにある

完全な詳細をAuthoriserタイプの「要求」を使用して代わりのトークンによって可能になりました: http://docs.aws.amazon.com/apigateway/latest/developerguide/use-custom-authorizer.html

基本的に、すべてのヘッダーは、リクエストの承認

のイベントオブジェクトに渡されます

すなわちヘッダがイベント


    "headers": { 
     "X-wibble": "111", 
     "X-wobble": "222", 
     "x-amzn-ssl-client-hello": "*Deleted*", 
     "Via": "1.1 .cloudfront.net (CloudFront)", 
     "CloudFront-Is-Desktop-Viewer": "true", 
     "CloudFront-Is-SmartTV-Viewer": "false", 
     "CloudFront-Forwarded-Proto": "https", 
     "X-Forwarded-For": "*Deleted*", 
     "CloudFront-Viewer-Country": "GB", 
     "Accept": "*/*", 
     "User-Agent": "curl/7.55.1", 
     "X-Amzn-Trace-Id": "Root=*Deleted*", 
     "Host": "*Deleted*.execute-api.eu-west-1.amazonaws.com", 
     "X-Forwarded-Proto": "https", 
     "X-Amz-Cf-Id": "*Deleted*", 
     "CloudFront-Is-Tablet-Viewer": "false", 
     "X-Forwarded-Port": "443", 
     "CloudFront-Is-Mobile-Viewer": "false" 
    } 

関連する問題