Amazon Cognito によるエンドユーザー認証
AWS へのアプリケーションデプロイ
Dunieski Otano
Amazon Web Services Solutions Architect
ログインを自作しますか?
新しいアプリにはサインアップとサインインの機能が必要です
チームは認証機能をゼロから構築しようとしています
Cognito はすでにこれを安全に実現します
ユーザープールと ID プールの違い
ユーザープール
:エンドユーザーのマネージドディレクトリ
サインアップ・サインインを処理し、
トークン
を発行します
ID プール
:ログイン情報を
AWS 認証情報
と交換します
組み合わせて使用:認証後に AWS アクセスを認可します
Cognito の 3 種類のトークン
ID トークン
:ユーザーの身元(ID クレーム)
アクセストークン
:ユーザーが呼び出せる操作
リフレッシュトークン
:再ログインなしで新しいトークンを取得
3 つすべてはデコードおよび検証可能な
JWT
です
フェデレーション ID
フェデレーション
:外部 ID プロバイダーでサインイン
ソーシャル:Google、Facebook、Apple
エンタープライズ:
SAML
および
OIDC
プロバイダー
Cognito が信頼を仲介し、独自のトークンを発行します
API Gateway オーソライザーとしての Cognito
API Gateway は
Cognito オーソライザー
を使用できます
クライアントは
Authorization ヘッダー
にトークンを付けて送信します
API Gateway はバックエンド実行前にトークンを検証します
無効または期限切れのトークンは
エッジで拒否
されます
サインインから API 呼び出しまでの典型的なフロー
ユーザーが
ユーザープール
にサインインします
ID トークン、アクセストークン、リフレッシュトークンを受け取ります
クライアントは
アクセストークン
を付けて API Gateway を呼び出します
Cognito オーソライザーが検証後、バックエンドが実行されます
Cognito のよくある間違い
アクセストークンが必要な箇所に
ID トークン
を送信してしまう
ユーザープールと ID プールを混同する
ユーザープールだけで
AWS アクセス
を認可しようとする
クライアント上でトークンを安全でない方法で保存する
練習しましょう!
AWS へのアプリケーションデプロイ
Preparing Video For Download...