無限ノック › DVA 練習問題一覧 › 問題
DVAセキュリティ

開発者はAPI Gateway + Lambda構成のREST APIにCognito User Poolsを使った認証を追加しました。ユーザーがCognitoでログインするとJWT(JSON Web Token)のIDトークンを受け取り、APIリクエストのAuthorizationヘッダーに含めて送信します。API GatewayのCognito User Poolオーソライザーがこのトークンを受け取ったとき、デフォルトで検証する内容はどれですか?

A
トークンのRS256署名、有効期限(exp)、および発行者(iss)がCognito User PoolのURLと一致するかどうか
✓ 正解
API GatewayのCognito User Poolオーソライザーは、JWTのRS256デジタル署名検証、有効期限(exp)確認、発行者(iss)がCognito URLと一致することをAPI Gateway側で自動的に検証します。3つの検証がすべてAPI Gatewayで完結するため実装要件を完全に満たします。
B
トークンの署名のみを検証し、有効期限の確認はLambda関数内のアプリケーションコードが行う必要がある
API GatewayはJWT署名だけでなく有効期限(exp)の確認もネイティブに実施します。有効期限確認をアプリケーション側に委譲する必要はなく、検証はAPI Gateway側で完結するため、この説明は誤りです。
C
すべてのリクエストでCognitoの/oauth2/userInfoエンドポイントに問い合わせてトークンの有効性を確認する
CognitoのJWT検証はCognito公開鍵を使いローカルで実施されるため、毎リクエスト/oauth2/userInfoエンドポイントに問い合わせる必要はありません。オーバーヘッドが少なくスケーラブルな設計を実現しています。
D
DynamoDBに保存されたユーザーセッション情報と照合して、リプレイ攻撃(再送攻撃)を防止する
Cognito User PoolオーソライザーはステートレスなJWT検証の仕組みであり、DynamoDB等のセッションストアに照合することはありません。リプレイ攻撃対策はJWTの有効期限やJTIクレームで対処するものです。

解説

API GatewayのCognito User Poolオーソライザーは、JWTのRS256デジタル署名の検証、有効期限(exp)の確認、発行者(iss)がCognito User Pool URLと一致するかの3点を自動的に検証します。有効期限の確認もAPI Gateway側で完結するため「署名のみ検証でexpはアプリ側が担当」は誤りです。 Cognitoの/oauth2/userInfoエンドポイントへの毎リクエスト問い合わせは行わず、JWT検証はCognito公開鍵を使いローカルで処理されるためオーバーヘッドが少なくスケーラブルです。 Cognito User PoolオーソライザーはステートレスなJWT検証であり、DynamoDBへのセッション情報照合は行いません。 リプレイ攻撃対策はJWTの有効期限・JTIクレーム等で対処するもので、DynamoDBセッションストアは使用しません。

ドメイン別正答率・予想スコアでリアルタイムに実力把握

無限ノックでDVAを徹底対策。全問AI生成のオリジナル問題。

無料で演習を始める →
← DVA の問題一覧に戻る