Amazon Cognito ID プール (フェデレーティッド ID) の使用開始方法 - Amazon Cognito

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

Amazon Cognito ID プール (フェデレーティッド ID) の使用開始方法

Amazon Cognito ID プールを使用すると、一意のアイデンティティを作成し、ユーザーに許可を割り当てることができます。ID プールには以下を含めることができます。

  • Amazon Cognito ユーザープール内のユーザー

  • Facebook、Google、Apple、または SAML ID プロバイダーなどの外部 ID プロバイダーを使って認証するユーザー。

  • 独自の既存の認証プロセスによって認証されたユーザー

ID プールでは、他の AWS のサービス への直接的なアクセス用、または、リソースへの Amazon API Gateway 経由のアクセス用にユーザーが定義した許可を使用する、一時的な AWS 認証情報を取得できます。

Amazon Cognito で ID プールを作成する

ID プールは、Amazon Cognito コンソール経由で、または、AWS Command Line Interface (CLI) か Amazon Cognito API を使用して作成することができます。

コンソールで新しい ID プールを作成する
  1. Amazon Cognito コンソールにサインインし、アイデンティティプールを選択します。

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

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

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

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

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

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

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

    1. 各 IdP のロール設定を選択します。その IdP のユーザーに、認証済みロールを設定したときに設定したデフォルトロールを割り当てることも、ルール付きのロールを選択することもできます。Amazon Cognito ユーザープール IdP では、トークンに preferred_role を含むロールを選択することもできます。cognito:preferred_role クレームの詳細については、「グループへの優先順位の値の割り当て」を参照してください。

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

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

    2. アクセスコントロールの属性は、IdP ごとに個別に設定できます。アクセスコントロールの属性は、Amazon Cognito がユーザーの一時セッションに適用するプリンシパルタグにユーザーのクレームをマッピングします。セッションに適用するタグに基づいてユーザーアクセスをフィルタリングするIAMポリシーを作成できます。

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

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

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

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

  7. [基本 (クラシック) 認証] で、ベーシックフローを有効にするかどうかを選択します。基本的なフローをアクティブにすると、 に対して行ったロールの選択をバイパス IdPs して、 AssumeRoleWithWebIdentity を直接呼び出すことができます。詳細については、「ID プール (フェデレーティッドアイデンティティ) の認証フロー」を参照してください。

  8. アイデンティティプールにタグを適用する場合は、[タグ] で [タグの追加] を選択します。

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

SDKE の設定

Amazon Cognito アイデンティティプールを使用するにはAWS Amplify、AWS SDK for Java、または AWS SDK for .NET を設定します。詳細については、以下のトピックを参照してください。

ID プロバイダーを統合する

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

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

外部 ID プロバイダーについては、ID プール外部 ID プロバイダー を参照してください。

独自のバックエンド認証プロセスの統合に関する詳細については、「デベロッパーが認証したアイデンティティ (アイデンティティプール)」を参照してください。

認証情報を取得する

Amazon Cognito ID プールは、ゲストユーザー (未認証)、および認証されてトークンを受け取ったユーザーに一時的な AWS 認証情報を提供します。これらの AWS 認証情報を使用することによってアプリケーションは、AWS 内のバックエンドに対し、または、(Amazon API Gateway 経由で) AWS 外のバックエンドに対しセキュアにアクセスできます。「認証情報の取得」を参照してください。