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

あなたはCognito User PoolsとAPI Gateway(Cognitoオーソライザー使用)で保護されたREST APIを開発しています。 APIのバックエンドでは、JWTトークン内のユーザーのサブスクリプションプラン('basic'/'premium')に基づいてレスポンスを変えたいと考えています。 サブスクリプション情報はCognitoのカスタム属性として保存されています。 このカスタム属性をJWTのIDトークンに含めるための最も適切な方法はどれですか?

A
API Gatewayのマッピングテンプレートを設定し、バックエンドへのリクエスト時にJWTトークンの内容を書き換えてカスタムクレームを付与する
API Gatewayのマッピングテンプレートを使ってリクエスト時にトークンの内容を書き換えると、JWTの署名が失敗します。
B
Lambdaオーソライザー内でCognitoのIDトークンをデコードし、サブスクリプション情報をHTTPヘッダーに追加してバックエンドへ転送する
LambdaオーソライザーでトークンをデコードしてカスタムクレームをHTTPヘッダーに付け直す方法は、バックエンド側で常にヘッダーを確認する必要があり、JWTの利点を活かせません。
C
Cognito User PoolsのPre Token GenerationトリガーにLambda関数を設定し、IDトークンのclaimsにカスタム属性を追加する
✓ 正解
Cognito User PoolsのPre Token GenerationトリガーにLambda関数を設定し、IDトークンのclaimsにカスタム属性を追加する。 Cognito User PoolsのPre Token Generationトリガーを使うと、トークン発行前にLambda関数でIDトークン・アクセストークンのclaimsをカスタマイズできます。カスタム属性はデフォルトでは必ずしもトークンに含まれないため、このトリガーで明示的に追加する必要があります。
D
Cognitoカスタム属性名に'custom:'プレフィックスを付けることで、そのフィールドが自動的にIDトークンのclaimsに含まれるようになる
カスタム属性名に'custom:'プレフィックスを付けても自動的にはIDトークンに含まれず、Pre Token Generationトリガーで明示的に追加する必要があります。

解説

Cognito User PoolsのPre Token Generationトリガーを使うと、トークン発行前にLambda関数でIDトークン・アクセストークンのclaimsをカスタマイズできます。カスタム属性はデフォルトでは必ずしもトークンに含まれないため、このトリガーで明示的に追加する必要があります。 選択肢Aは、API Gatewayのマッピングテンプレートを使ってリクエスト時にトークンの内容を書き換えると、発行済みJWTの署名検証が失敗します。 選択肢Bは、LambdaオーソライザーでトークンをデコードしてカスタムクレームをHTTPヘッダーに付け直す方法は、バックエンド側で常にヘッダーを確認する必要があり、JWTの利点を活かせません。 選択肢Dは、カスタム属性名に'custom:'プレフィックスを付けても自動的にはIDトークンに含まれず、Pre Token Generationトリガーで明示的に追加する必要があります。

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

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

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