DVA-C02セキュリティHARD単一選択

あるチームは Cognito を使ったモバイルアプリを開発しています。アプリは Cognito ユーザープールでサインイン後に返される ID トークン・アクセストークン・リフレッシュトークンの 3 種類のトークンを使用します。「ユーザーの属性(email、カスタム属性)を取得する」ためには、どのトークンを API Gateway のオーソライザーとして使うべきですか?

  1. A. ID トークンを使用し、API Gateway の Lambda Authorizer でデコードしてユーザー属性を検証する
  2. B. リフレッシュトークンを Authorization ヘッダーに含めて API Gateway に送る
  3. C. アクセストークンを Authorization ヘッダーに含めて API Gateway の Cognito オーソライザーを設定する
  4. D. ID トークンを Authorization ヘッダーに含めて API Gateway の Cognito オーソライザーを設定する
解答と解説を見る

正解: D

ID トークンは JWT 形式でユーザーの属性(email、phone、カスタム属性など)を claims として含みます。API Gateway の Cognito オーソライザーは ID トークンまたはアクセストークンを検証できますが、ユーザー属性を取得する必要がある場合は ID トークンを使用します。アクセストークンはスコープベースのアクセス制御に使用されますが、ユーザー属性の claims は含まれません。B のリフレッシュトークンは新しいアクセス/ID トークンの取得にのみ使用するもので、API 認証に使うものではありません。C はアクセストークンは属性 claims がなく要件を満たしません。A は Lambda Authorizer を使う必要があると言っていますが、Cognito オーソライザーで直接 ID トークンを検証できるためオーバーエンジニアリングです。

▸ この試験を本気で演習する(全150問・無料)