web-dev-qa-db-ja.com

AWS Api Gateway Authorizer + Cognitoユーザープールが機能しない{"message": "Unauthorized"}

コグニトユーザープールでaws apiゲートウェイオーソライザーを使用しようとしています。 aws apiゲートウェイコンソールを使用してテストすると、問題なく動作します。

しかし、APIで認証を有効にしようとすると、"message": "Unauthorized".以下のスクリーンショットを確認してください

API Gatewayコンソールのスクリーンショット-これは正常に動作します enter image description here

Postmanスクリーンショット-機能しません enter image description here

誰かが助けてくれますか?.

参考までに、ここに記載されている指示に従いました http://docs.aws.Amazon.com/apigateway/latest/developerguide/apigateway-integrate-with-cognito.html

15
Manivannan Guru

私の場合、認証コードはid_tokenである必要があります。代わりにaccess_tokenの使用を間違えました

9
Long Nguyen

Mathiasのソリューションを試しましたが、最初はうまくいきませんでした。奇妙なことに、何時間か後に戻って再試行することができ、今回はAPIをデプロイする前に、APIゲートウェイに他のいくつかの変更を加えました。今回は、私が行った他の変更は表面的なものでしたが、うまくいきました。

また、よくあることですが、AWSドキュメントは間違っており、method.response.header.Authorizationを使用する必要があると述べています。これは、実際にはカスタム認証を使用するLambdaにのみ有効です。新しいCognito User Pool Authorizerを使用している場合は、ここでAuthorizationを使用する必要があります。

  1. method.response.header.AuthorizationではなくAuthorizationを使用してください
  2. API Gatewayでリソースに表面的な変更を加えます
  3. APIをデプロイして少し待つ

-編集-

スタックをCloudformationに変換したところ、Cloudformationを使用してオーソライザーをデプロイしている場合、実際にはトークンソースに完全なmethod.response.header.Authorizationを指定する必要があることがわかりました。実際、その形式を使用しない場合、スタックのデプロイは失敗します。ただし、デプロイすると、コンソールでオーソライザーを見ると、method.response.headerパーツが削除されています。

4
Miles

私はあなたと同じ問題を抱えていて、間違ったトークンソースを入力したことに気付きました。

<your API> -> Authorizers -> Token Source AP​​Iゲートウェイがトークンを探す必要があるHTTPヘッダーの名前。 (あなたの場合Authorization

保存して、テストする前にデプロイすることを忘れないでください。

enter image description here

2
Mathias

以下の手順で問題が解決します。つまり、AWS API Gatewayにバグがあるようです。 APIを再デプロイすることで修正できます。

  1. リクエストバリデーターを[〜#〜] none [〜#〜]からValidate Body
  2. アクション->APIをデプロイします->目的のステージを選択しますそれを展開します。
  3. リクエストバリデーターをValidate Bodyから[〜#〜] none [〜#〜]
  4. 手順2をやり直します。

enter image description here

2
C.Lee

同じ問題がありましたが、解決策はプロジェクトを再デプロイすることでした。

1
raphadko

以下の3つの手順を試して(APIをデプロイすることを忘れないでください)、POST man

  1. キャッシュ

enter image description here

  1. メソッドリクエストの設定

enter image description here

  1. APIをデプロイする

enter image description here

0
ShanmugaKS