問題タブ [lambda-authorizer]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
amazon-web-services - 401 のカスタム応答 Lambda オーソライザー
Unauthorized
エラー パラメータに文字列を指定して Lambda オーソライザーから Lambda コールバック関数を呼び出すと、本文を含む 401 レスポンスが返されます。
{ "message": "Unauthorized" }
応答で他の文字列を使用しようとすると、次の応答が返されます。
{ "message": null }
代わりに、コールバックの結果パラメータで拒否ポリシー ドキュメントを返すと、次のような応答で 403 が返されます。
{ "message": "Unable to access resource with an explicit deny" }
調べてみると、Lambda オーソライザーからカスタム レスポンスを返すようにゲートウェイ レスポンスを設定する必要があるようです。これは 403 レスポンスに対して取り組んでいますが、401 に対してこれを行う方法がわかりません。
403 については、テンプレートを使用してゲートウェイ レスポンスを作成しました。
{\"message\":\"$context.authorizer.stringKey\"}
次に、結果オブジェクトで次を設定します
ResultObject.context.stringKey = 'My custom response'
これは機能し、ここに文書化されています。
ただし、401 については、ポリシー ドキュメントを返さないため、カスタム レスポンスの使用方法がわかりません。403 の場合と同じゲートウェイ レスポンスを作成しましたが、エラー パラメータに任意の文字列 (「Unauthorized」以外) を含むコールバックをヒットすると、null メッセージが表示されます。これはポリシー ドキュメントを含む応答構造体である必要があるため、結果パラメーターで返すことはできません。
401 でカスタム応答を返す方法についてのアイデアはありますか?
amazon-web-services - AWS 利用プランの API キーとカスタムオーソライザー
AWS API Gateway の使用量プランのキーはカスタムオーソライザーより先に評価されますか? オーソライザーが実行される前に使用プラン API キーを評価する方法がない場合、カスタムオーソライザーが外部にフラッディングできるという欠陥があり、通常の使用が中断されることがわかります。