

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

# 一般的な Amazon Cognito シナリオ
<a name="cognito-scenarios"></a>

このトピックでは、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 経由のフェデレーションもサポートしています。

**Topics**
+ [ユーザープールを使用して認証する](#scenario-basic-user-pool)
+ [ユーザープールトークンを使用するバックエンドリソースへのアクセス](#scenario-backend)
+ [ユーザープールと共に API Gateway と Lambda を使用してリソースにアクセスする](#scenario-api-gateway)
+ [ユーザープールと ID プールを使用して AWS サービスにアクセスする](#scenario-aws-and-user-pool)
+ [サードパーティーによる認証と ID プールによる AWS サービスへのアクセス](#scenario-identity-pool)
+ [Amazon Cognito で AWS AppSync リソースにアクセスする](#scenario-appsync)

## ユーザープールを使用して認証する
<a name="scenario-basic-user-pool"></a>

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

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

詳細については、「[認証セッションの例](authentication.md#amazon-cognito-user-pools-authentication-flow)」および「[ユーザープール JSON ウェブトークン (JWT) の理解](amazon-cognito-user-pools-using-tokens-with-identity-providers.md)」を参照してください。

![\[認証の概要\]](http://docs.aws.amazon.com/ja_jp/cognito/latest/developerguide/images/scenario-authentication-cup.png)


## ユーザープールトークンを使用するバックエンドリソースへのアクセス
<a name="scenario-backend"></a>

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

![\[ユーザープール経由でサーバー側のリソースにアクセスする\]](http://docs.aws.amazon.com/ja_jp/cognito/latest/developerguide/images/scenario-standalone.png)


ユーザープールのドメインを設定した後、Amazon Cognito が、アプリにサインアップおよびサインインページを追加できるようにするホストされたウェブの UI をプロビジョニングします。この OAuth 2.0 認証基盤を使用することで、独自のリソースサーバーを作成でき、ユーザーは保護されたリソースにアクセスできるようになります。詳細については、「[スコープ、M2M、リソースサーバー](cognito-user-pools-define-resource-servers.md)」を参照してください。

ユーザープール認証の詳細については、「[認証セッションの例](authentication.md#amazon-cognito-user-pools-authentication-flow)」および「[ユーザープール JSON ウェブトークン (JWT) の理解](amazon-cognito-user-pools-using-tokens-with-identity-providers.md)」を参照してください。

## ユーザープールと共に API Gateway と Lambda を使用してリソースにアクセスする
<a name="scenario-api-gateway"></a>

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

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

Amazon Cognito オーソライザーの Lambda 関数による検証のために、API Gateway へのリクエストでユーザープールトークンを送信することができます。API Gateway の詳細については、「[Amazon Cognito ユーザープールをオーソライザーとして使用して REST API へのアクセスを制御する](https://docs.aws.amazon.com/apigateway/latest/developerguide/apigateway-integrate-with-cognito.html)」を参照してください。

![\[ユーザープール経由で API Gateway にアクセスする\]](http://docs.aws.amazon.com/ja_jp/cognito/latest/developerguide/images/scenario-api-gateway.png)


## ユーザープールと ID プールを使用して AWS サービスにアクセスする
<a name="scenario-aws-and-user-pool"></a>

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

![\[ID プールを使用してユーザープール経由で AWS 認証情報にアクセスする\]](http://docs.aws.amazon.com/ja_jp/cognito/latest/developerguide/images/scenario-cup-cib.png)


## サードパーティーによる認証と ID プールによる AWS サービスへのアクセス
<a name="scenario-identity-pool"></a>

ID プールを介して AWS のサービスへのアクセスをユーザーに許可できます。ID プールには、サードパーティー ID プロバイダーによって認証されたユーザーからの IdP トークンが必要です (匿名ゲストの場合は何も必要ありません)。代わりに、ID プールは、他の AWS サービスにアクセスするために使用できる一時的な AWS 認証情報を付与します。詳細については、「[Amazon Cognito アイデンティティプールの開始方法](getting-started-with-identity-pools.md)」を参照してください。

![\[ID プールを使用してサードパーティーの ID プロバイダーを介して AWS 認証情報にアクセスする\]](http://docs.aws.amazon.com/ja_jp/cognito/latest/developerguide/images/scenario-identity-pool.png)


## Amazon Cognito で AWS AppSync リソースにアクセスする
<a name="scenario-appsync"></a>

成功した Amazon Cognito ユーザープール認証からのトークンを使用して、 AWS AppSync リソースへのアクセス権をユーザーに付与できます。詳細については、「*AWS AppSync デベロッパーガイド*」の「[AMAZON\$1COGNITO\$1USER\$1POOLS authorization](https://docs.aws.amazon.com/appsync/latest/devguide/security-authz.html#amazon-cognito-user-pools-authorization)」を参照してください。

ID プールから受け取った IAM 認証情報を使用して、 AWS AppSync GraphQL API へのリクエストに署名することもできます。「[AWS\$1IAM authorization](https://docs.aws.amazon.com/appsync/latest/devguide/security-authz.html#aws-iam-authorization)」を参照してください。

![\[ユーザープールまたは ID プールを介して AWS AppSync リソースにアクセスする\]](http://docs.aws.amazon.com/ja_jp/cognito/latest/developerguide/images/scenario-appsync.png)
