Amazon Cognito
開発者ガイド

一般的な Amazon Cognito シナリオ

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

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

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

ID プールを使用すると、ユーザーは一時的な AWS 認証情報を取得して、Amazon S3 や DynamoDB などの AWS のサービスにアクセスすることができます。ID プールは、匿名ゲストユーザーと、サードパーティー IdP 経由の連携のいずれもサポートしています。

ユーザープールによる認証

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

認証に成功すると、ウェブやモバイルアプリケーションに Amazon Cognito よりユーザープールトークンが送信されます。これらのトークンを使用して、他の AWS のサービスへのアプリによるアクセスを許可する AWS 認証情報を取得したり、サーバー側のリソースへのアクセスや Amazon API Gateway へのアクセスを制御したりすることができます。

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


        認証の概要

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

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


        ユーザープールを使用したサーバー側のリソースへのアクセス

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

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

API Gateway および Lambda でユーザープールを使用してリソースにアクセスする

API Gateway を介して API にアクセスすることをユーザーに許可できます。API Gateway は、成功したユーザープール認証からトークンを検証し、Lambda 関数や独自の API などのリソースへのアクセスをユーザーに許可するためにトークンを使用します。

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

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


        ユーザープールを通じて API Gateway にアクセスする

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

ユーザープールの認証に成功すると、アプリケーションに Amazon Cognito よりユーザープールトークンが送信されます。ID プールを使用して他の AWS のサービスに一時的にアクセスするには、これらのトークンを交換します。詳細については、「サインイン後に ID プールを使用して AWS サービスへアクセスする」および「Amazon Cognito ID プール (フェデレーティッドアイデンティティ) での作業開始」を参照してください。


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

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

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


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

Amazon Cognito を使用した AWS AppSync リソースへのアクセス

Amazon Cognito 認証に成功したトークンを使用して、AWS AppSync リソースへのアクセスをユーザーに許可できます (ユーザープールまたは ID プール)。詳細については、「ユーザープールまたはフェデレーテッドアイデンティティを使用して AWS AppSync およびデータソースにアクセスする」を参照してください。


        ユーザープールまたは ID プールを通じて AWS AppSync にアクセスする