0

Admin Queries API を含む Amplify Auth カテゴリを使用していますが、API にアクセスできません。

Postman で、GET メソッドを使用してエンドポイントをテストします。

https://xxxxxxxxxxxx.execute-api.eu-west-2.amazonaws.com/dev/getUser/?username=jan

(管理者グループに jan という cognito ユーザーがいます)。ユーザー ID トークンを値として持つ Authorization ヘッダーを含めます。(ID トークン値は、API ゲートウェイ コンソールで API ゲートウェイ オーソライザーをテストするために使用する場合に機能します)。Postman は 401 無許可ステータスを返します。Cloudwatch には何も表示されません。

Api Gateway コンソールで、API の任意のリソース アクションをテストするときは、次の設定を使用します。

  method: GET,
  path {proxy}: getUser,
  query strings {proxy}: username=jan,
  headers {proxy}: Authorization:id token

結果は、実行が正常に完了したことを示します。メソッドはステータス: 500 で完了しましたが、「メッセージ」を返します: 「未定義のプロパティ 'クレーム' を読み取れません」

ラムダ実行は Cloudwatch に表示されます。

どんな助けにも感謝します。

ありがとう

4

1 に答える 1

0

500 エラーの理由は、Api ゲートウェイが Cognito 認証済みユーザーを適切に転送していないためです。

AdminQueriesLambda はおそらく で失敗しています。req.apiGateway.event.requestContext.authorizer.claims["cognito:groups"]これは、すべてのルートに対してチェックするように設定されています。

API Gateway、Lambda、Cognito、および AWS Amplify を使用して AWS で認証済み REST API を作成する方法は、セットアップに役立ちました。

于 2021-02-10T16:29:20.990 に答える