#Amazon Cognito とは
Amazon Cognito は、ウェブアプリケーションやモバイルアプリケーションの認証、許可、ユーザー管理をサポート
Amazon Cognito の主な 2 つのコンポーネントは、ユーザープールと ID プールです。
##Amazon Cognito ユーザープールと ID プールを一緒に使用するケース
一般的な Amazon Cognito シナリオ
- ユーザープールによる認証
- ユーザープールを使用してサーバー側のリソースにアクセスする
- API Gateway および Lambda でユーザープールを使用してリソースにアクセスする
- ユーザープールと ID プールを使用して AWS のサービスにアクセスする
- サードパーティーを使用して認証を行い、ID プールを使用して AWS サービスにアクセスする
- Amazon Cognito を使用した AWS AppSync リソースへのアクセス
###ユーザープールによる認証
認証に成功すると、ウェブやモバイルアプリケーションに Amazon Cognito よりユーザープールトークンが送信されます。これらのトークンを使用して、他の AWS のサービスへのアプリによるアクセスを許可する AWS 認証情報を取得したり、サーバー側のリソースへのアクセスや Amazon API Gateway へのアクセスを制御したりすることができます。
WEBIDFederationでトークンと一時認証情報を交換して使います。
###ユーザープールを使用してサーバー側のリソースにアクセスする
こちらもトークンと一時認証情報を交換して使います。
###API Gateway および Lambda でユーザープールを使用してリソースにアクセスする
API Gateway を介して API にアクセスすることをユーザーに許可できます。API Gateway は、成功したユーザープール認証からトークンを検証し、Lambda 関数や独自の API などのリソースへのアクセスをユーザーに許可するためにトークンを使用します。
ユーザープールと ID プールを使用して AWS のサービスにアクセスする
まずユーザープールで認証を行う。そのあとにIDプールでトークンと一時認証情報を交換。それを使ってAWSリソースにアクセスする。
こちらの記事でフェデレーションについて扱っています。
サードパーティーを使用して認証を行い、ID プールを使用して AWS サービスにアクセスする
ユーザープールの代わりに外部Idpを使用。そのあとは一緒です。
Amazon Cognito を使用した AWS AppSync リソースへのアクセス
Amazon Cognito のユーザープールと ID プールの違いは何ですか?
ユーザープールでは認証 (アイデンティティの検証) ができます。ユーザープールを使用すると、アプリユーザーはユーザープールからのサインインや、サードパーティーのアイデンティティプロバイダー (IdP) を介した連携ができます。
ID プールでは認可 (アクセスコントロール) ができます。ID プールを使用すると、ユーザーに一意の ID を作成して、他の AWS サービスへのアクセスを許可できます。
#参考文献
- Amazon Cognito とは
- Amazon Cognito のユーザープールと ID プールの違いは何ですか?