一般的な Amazon Cognito シナリオ - Amazon Cognito

一般的な Amazon Cognito シナリオ

このトピックでは、Amazon Cognito を使用するための 6 つの一般的なシナリオについて説明します。

Amazon Cognito の主な 2 つのコンポーネントは、ユーザープールと ID プールです。ユーザープールは、ウェブおよびモバイルユーザーにサインアップとサインインオプションを提供するユーザーディレクトリです。ID プールは、AWS の他のサービスへのアクセス権をユーザーに付与する AWS 認証情報を提供します。

ユーザープールは、Amazon Cognito のユーザーディレクトリです。アプリユーザーは、ユーザープール経由で直接サインインする、またはサードパーティーの ID プロバイダー (IdP) 経由でフェデレートすることができます。ユーザープールは、Facebook、Google、Amazon、Apple 経由のソーシャルサインイン、および OpenID Connect (OIDC) と SAML IdP から返されるトークンの処理のオーバーヘッドを管理します。ユーザーが直接またはサードパーティーを通じてサインインするかどうかにかかわらず、ユーザープールのすべてのメンバーには、SDK を通じてアクセスできるディレクトリプロファイルがあります。

ID プールを使用すると、ユーザーは Amazon S3 や DynamoDB などの AWS のサービスにアクセスするための一時的な AWS 認証情報を取得できます。ID プールは、匿名ゲストユーザーに加えて、サードパーティー IdP 経由のフェデレーションもサポートしています。

ユーザープールを使用して認証する

ユーザーがユーザープールを使用して認証できるようにすることが可能です。アプリユーザーは、ユーザープール経由で直接サインインする、またはサードパーティーの ID プロバイダー (IdP) 経由でフェデレートすることができます。ユーザープールは、Facebook、Google、Amazon、Apple 経由のソーシャルサインイン、および OpenID Connect (OIDC) と SAML IdP から返されるトークンの処理のオーバーヘッドを管理します。

認証が正常に行われると、ウェブまたはモバイルアプリが Amazon Cognito からユーザープールトークンを受け取ります。これらのトークンは、アプリケーションが AWS のその他サービスにアクセスできるようにする AWS 認証情報の取得に使用できる他、サーバー側のリソースや Amazon API Gateway へのアクセスを制御するために使用することも可能です。

詳細については、「Userプール認証フロー」および「ユーザープールでのトークンの使用」を参照してください。


        認証の概要

ユーザープールを使用してサーバー側のリソースにアクセスする

ユーザープールへのサインインが正常に行われると、ウェブまたはモバイルアプリが Amazon Cognito からユーザープールトークンを受け取ります。サーバー側のリソースへのアクセスを制御するには、これらのトークンを使用します。また、ユーザープールグループを作成して許可を管理したり、異なるタイプのユーザーを表したりすることもできます。グループを使用して、リソースをアクセス制御する方法の詳細については、「ユーザープールにグループを追加する」を参照してください。


        ユーザープール経由でサーバー側のリソースにアクセスする

ユーザープールのドメインを設定すると、Amazon Cognito が、アプリにサインアップおよびサインインページを追加できるようにする Hosted Web UI をプロビジョニングします。この OAuth 2.0 認証基盤を使用すると、独自のリソースサーバーを作成して、ユーザーは、保護されたリソースにアクセスできるようになります。詳細については、「ユーザープールのリソースサーバーを定義する」を参照してください。

ユーザープール認証の詳細については、「Userプール認証フロー」および「ユーザープールでのトークンの使用」を参照してください。

ユーザープールと共に API Gateway と Lambda を使用してリソースにアクセスする

ユーザーが API Gateway 経由で API にアクセスできるようにすることが可能です。API Gateway は、正常に行われたユーザープール認証からのトークンを検証し、これらのトークンを Lambda 関数などのリソース、または独自の API へのアクセス権をユーザーに付与するために使用します。

ユーザープール内のグループは、グループメンバーシップを IAM ロールにマップすることによって、API Gateway でアクセス許可を制御するために使用できます。ユーザーがメンバーとなっているグループは、アプリユーザーのサインイン時にユーザープールより付与される ID トークンに含まれます。ユーザープールグループの詳細については、「ユーザープールにグループを追加する」を参照してください。

Amazon Cognito オーソライザーの Lambda 関数による検証のために、API Gateway へのリクエストでユーザープールトークンを送信することができます。API Gateway の詳細については、「Amazon Cognito ユーザープールをオーソライザーとして使用して REST API へのアクセスを制御する」を参照してください。


        ユーザープール経由で API Gateway にアクセスする

ユーザープールと ID プールを使用して AWS のサービスにアクセスする

ユーザープールの認証が正常に行われると、アプリケーションが Amazon Cognito からユーザープールトークンを受け取ります。これらは、ID プールを使用した AWS の他のサービスへの一時的なアクセス権と交換できます。詳細については、「サインイン後に ID プールを使用して AWS サービスへアクセスする」および「Amazon Cognito ID プール (フェデレーティッド ID) の使用開始方法」を参照してください。


        ID プールを使用してユーザープール経由で AWS 認証情報にアクセスする

サードパーティーで認証を行い、ID プールを使用して AWS サービスにアクセスする

ユーザーが ID プール経由で AWS のサービスにアクセスできるようにすることが可能です。ID プールには、サードパーティー ID プロバイダーによって認証されたユーザーからの IdP トークンが必要です (匿名ゲストの場合は何も必要ありません)。ID プールは、AWS の他のサービスへのアクセスに使用できる一時的な AWS 認証情報を付与します。詳細については、「Amazon Cognito ID プール (フェデレーティッド ID) の使用開始方法」を参照してください。


        ID プールを使用してサードパーティー ID プロバイダー経由で AWS 認証情報にアクセスする

Amazon Cognito を使用して AWS AppSync リソースにアクセスする

正常に行われた Amazon Cognito 認証 (ユーザープールまたは ID プール) からのトークンを使用して、AWS AppSync リソースへのアクセス権をユーザーに付与することができます。詳細については、「ユーザープールまたはフェデレーティッド ID を使用して AWS AppSync およびデータソースにアクセスする」を参照してください。


        ユーザープールまたは ID プール経由で AWS AppSync にアクセスする