ある企業が AWS 上でウェブアプリケーションを構築しており、ユーザー認証・認可の機能を最小限の開発負荷で実装したいと考えています。要件は以下の通りです。②メール/パスワードによるサインアップ・サインイン、③ソーシャルログイン(Google、Facebook)、④JWT トークンによる API 認可、①多要素認証(MFA)のサポート。これらをすべて満たす最もシンプルな AWS サービスはどれですか?
- A. Auth0 などのサードパーティ IdP を使用し、AWS には認証・認可の機能を持たせない
- B. IAM ユーザーを作成してアプリケーションに統合し、Cognito なしでカスタムの認証ロジックを実装する
- C. Amazon Cognito User Pool を作成し、ユーザープールの組み込み UI またはカスタム UI でサインアップ/サインイン、Google/Facebook フェデレーションの設定、MFA の有効化を設定する。JWT(ID トークン・アクセストークン)で API Gateway の Cognito オーソライザーによる認可を実装する
- D. AWS Directory Service を作成してユーザーを管理し、LDAP プロトコルでアプリケーションと統合する
解答と解説を見る
正解: C
Amazon Cognito User Pool はユーザー認証と認可に必要なすべての機能をマネージドサービスとして提供します。メール/パスワード認証、ソーシャルログイン(OIDC/SAML フェデレーション)、MFA(SMS/TOTP)、JWT トークン発行(ID/Access/Refresh)をすべて組み込みでサポートし、API Gateway の Cognito オーソライザーと直接統合できます。 B: IAM ユーザーはアプリケーションユーザーの管理には設計されておらず、ソーシャルログインや MFA の統合が複雑になります。 D: AWS Directory Service は企業の AD/LDAP 環境との統合に適しており、コンシューマー向けアプリのユーザー認証要件(ソーシャルログイン等)には設計されていません。 A: サードパーティ IdP の使用は機能的ですが、「最小限の開発負荷で AWS サービスを使う」要件に対して、追加のベンダー管理コストと統合の複雑さが生じます。
📚 関連サービスの解説: Amazon Cognito ・ Amazon API Gateway