

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

# Amazon Cognito アイデンティティプールの開始方法
<a name="getting-started-with-identity-pools"></a>

Amazon Cognito ID プールを使用すると、一意のアイデンティティを作成し、ユーザーに許可を割り当てることができます。アイデンティティプールは、次のタイプの認証サービスから ID を取り込むことができます。
+ Amazon Cognito ユーザープール内のユーザー
+ Facebook、Google、Apple、または SAML ID プロバイダーなどの外部 ID プロバイダーを使って認証するユーザー。
+ 独自の既存の認証プロセスによって認証されたユーザー

ユーザーがプロバイダーで認証し、ID プールに認可を提示すると、一時的な AWS 認証情報を取得します。ユーザーの認証情報には、他の AWS のサービスにアクセスするために定義したアクセス許可が含まれます。

**Topics**
+ [Amazon Cognito で ID プールを作成する](#create-identity-pool)
+ [SDKE の設定](#install-the-mobile-or-javascript-sdk)
+ [ID プロバイダーを統合する](#integrate-the-identity-providers)
+ [認証情報を取得する](#get-credentials)
+ [アイデンティティプールのサンプルアプリケーション](getting-started-identity-pools-application.md)

## Amazon Cognito で ID プールを作成する
<a name="create-identity-pool"></a>

ID プールは、Amazon Cognito コンソール経由で、または、 AWS Command Line Interface (CLI) か Amazon Cognito API を使用して作成することができます。次の手順は、コンソールで新しいアイデンティティプールを作成するための一般的なガイドです。[コンソールに直接スキップ](https://console.aws.amazon.com/cognito/v2/identity/identity-pools)して、ガイド付きエクスペリエンスとインラインヘルプコンテンツに従うこともできます。

**コンソールで新しい ID プールを作成する**

1. [Amazon Cognito コンソール](https://console.aws.amazon.com/cognito/home)にサインインし、**アイデンティティプール**を選択します。Amazon Cognito リソースを作成および管理できるように IAM プリンシパルにアクセス許可を割り当てるには、「[AWS Amazon Cognito の マネージドポリシー](security-iam-awsmanpol.md)」を参照してください。アイデンティティプールの作成には `AmazonCognitoPowerUser` ポリシーで十分です。

1. **[ID プールを作成]** を選択します。

1. **[ID プールの信頼を設定]** で、アイデンティティプールを**認証アクセス**、**ゲストアクセス**、またはその両方に設定することを選択します。

   1. **[認証アクセス]** を選択した場合、アイデンティティプールの認証済み ID のソースとして設定する **ID タイプ**を 1 つ以上選択します。**[カスタムデベロッパープロバイダー]** を設定した場合、アイデンティティプールの作成後にそのプロバイダーを変更したり削除したりすることはできません。

1. **[許可を設定]** で、アイデンティティプール内の認証済みユーザーまたはゲストユーザーのデフォルトの IAM ロールを選択します。

   1. Amazon Cognito に、基本的な権限とアイデンティティプールとの信頼関係を持つ新しいロールを作成する場合は、**[新しい IAM ロールを作成]** を選択します。新しいロールを識別するための **IAM ロール名**を入力します (たとえば `myidentitypool_authenticatedrole`)。**[ポリシードキュメントを表示]** を選択して、Amazon Cognito が新しい IAM ロールに割り当てるアクセス権限を確認します。

   1. 使用する **にロールがすでにある場合は、既存の IAM **ロール AWS アカウント を使用することを選択できます。`cognito-identity.amazonaws.com` を含めるように IAM ロールの信頼ポリシーを設定する必要があります。リクエストが特定のアイデンティティプール内の認証されたユーザーから送信されたという証拠を提示した場合にのみ、Amazon Cognito がロールを引き継ぐことを許可するようにロールの信頼ポリシーを設定します。詳細については、「[ロールの信頼とアクセス権限](iam-roles.md#role-trust-and-permissions)」を参照してください。

1. **[ID プロバイダーを接続]** で、**[ID プールの信頼の設定]** で選択した ID プロバイダー (IdPs) の詳細を入力します。OAuth アプリケーションクライアント情報の提供、Amazon Cognito ユーザープールの選択、IAM IdP の選択、またはディベロッパープロバイダーのカスタム識別子の入力を求められる場合があります。

   1. 各 IdP の**ロール設定**を選択します。その IdP のユーザーに、**認証済みロール**を設定したときに設定した**デフォルトロール**を割り当てることも、**ルール付きのロールを選択**することもできます。Amazon Cognito ユーザープール IdP では、トークンに **preferred\_role を含むロールを選択**することもできます。`cognito:preferred_role` クレームの詳細については、「[グループへの優先順位の値の割り当て](cognito-user-pools-user-groups.md#assigning-precedence-values-to-groups)」を参照してください。

      1. **[ルールを使用してロールを選択]** を選択した場合は、ユーザー認証のソース**クレーム**、クレームを比較する**演算子**、選択したロールと一致させる**値**、および**ロールの割り当て**が一致したときに割り当てる**ロール**を入力します。別の条件に基づいて追加のルールを作成するには、**[別のものを追加]** を選択します。

      1. **[ロールの解決]** を選択します。ユーザーのクレームがルールに合わない場合は、認証情報を拒否するか、**認証済みロール**の認証情報を発行できます。

   1. **アクセスコントロールの属性**は、IdP ごとに個別に設定できます。アクセスコントロールの属性は、Amazon Cognito がユーザーの一時セッションに適用する[プリンシパルタグ](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_iam-tags.html)にユーザーのクレームをマッピングします。セッションに適用するタグに基づいてユーザーアクセスをフィルタリングするIAMポリシーを作成できます。

      1. プリンシパルタグを適用しない場合は、**[非アクティブ]** を選択します。

      1. `sub` および `aud` クレームに基づいてプリンシパルタグを適用するには、**[デフォルトマッピングを使用]** を選択します。

      1. プリンシパルタグへの属性の独自のカスタムスキーマを作成するには、**[カスタムマッピングを使用]** を選択します。次に、タグに表示したい各**クレーム**から取得する**タグキー**を入力します。

1. **[プロパティの設定]** の **[ID プール名]** に **[名前]** を入力します。

1. **[基本 (クラシック) 認証]** で、**ベーシックフローを有効にする**かどうかを選択します。基本フローがアクティブになっていると、IdPs に対して行ったロール選択をバイパスして [AssumeRoleWithWebIdentity](https://docs.aws.amazon.com/STS/latest/APIReference/API_AssumeRoleWithWebIdentity.html) を直接呼び出すことができます。詳細については、「[ID プールの認証フロー](authentication-flow.md)」を参照してください。

1. アイデンティティプールに[タグ](https://docs.aws.amazon.com/general/latest/gr/aws_tagging.html)を適用する場合は、**[タグ]** で **[タグの追加]** を選択します。

1. **[確認および作成]** で、新しいアイデンティティプールに対して行った選択を確認します。**[編集]** を選択してウィザードに戻り、設定を変更します。終了したら、**[ID プールの作成]** を選択します。

## SDKE の設定
<a name="install-the-mobile-or-javascript-sdk"></a>

Amazon Cognito ID プールを使用するには、 AWS Amplify、 AWS SDK for Java、または を設定します SDK for .NET。詳細については、以下のトピックを参照してください。
+ *AWS SDK for JavaScript  デベロッパーガイド*の [SDK for JavaScript のセットアップ](https://docs.aws.amazon.com/sdk-for-javascript/v2/developer-guide/setting-up.html)
+ *Amplify Dev Center* の「[Amplify のドキュメント](https://docs.amplify.aws/)」
+ [SDK for .NET ディベロッパーガイド](https://docs.aws.amazon.com/sdk-for-net/v3/developer-guide/cognito-creds-provider.html) の「*Amazon Cognito 認証情報プロバイダー*」

## ID プロバイダーを統合する
<a name="integrate-the-identity-providers"></a>

Amazon Cognito アイデンティティプール (フェデレーティッド ID) は、Amazon Cognito ユーザープール、フェデレーティッド ID プロバイダー (Amazon、Facebook、Google、および SAML ID プロバイダーなど) に加えて、認証されていない ID 経由でのユーザー認証をサポートしています。また、この機能は独自のバックエンド認証プロセスを通じてユーザーを認証し登録することができる、[デベロッパーが認証した ID](developer-authenticated-identities.md) をサポートしています。

独自のユーザーディレクトリを作成するための Amazon Cognito ユーザープールの使用に関する詳細については、「[Amazon Cognito user pools](cognito-user-pools.md)」および「[サインイン後の ID プール AWS のサービス を使用した へのアクセス](amazon-cognito-integrating-user-pools-with-identity-pools.md)」を参照してください。

外部 ID プロバイダーについては、[アイデンティティプールのサードパーティー ID プロバイダー](external-identity-providers.md) を参照してください。

独自のバックエンド認証プロセスの統合に関する詳細については、「[デベロッパーが認証した ID](developer-authenticated-identities.md)」を参照してください。

## 認証情報を取得する
<a name="get-credentials"></a>

Amazon Cognito ID プールは、ゲストであるユーザー (認証されていないユーザー) と、トークンを認証して受け取ったユーザーに一時的な AWS 認証情報を提供します。これらの AWS 認証情報を使用すると、アプリケーションは Amazon API Gateway AWS AWS を介して内外のバックエンドに安全にアクセスできます。「[認証情報の取得](getting-credentials.md)」を参照してください。