ユーザープールに機能とセキュリティオプションを追加する - Amazon Cognito

ユーザープールに機能とセキュリティオプションを追加する

チュートリアルに従ってサンプルアプリケーションを完成させたら、ユーザープールの実装の範囲を広げることができます。または、テストアプリケーションを作成していない場合は、設定に従って新しいユーザープールを作成します。他のアプリケーションのユーザープール機能のカスタマイズや、外部 ID プロバイダーの追加ができます。Amazon Cognito ユーザープールを本稼働アプリケーションに配置する移動を計画するときは、追加のサンプルとチュートリアルを評価できます。

以下は、Amazon Cognito ユーザープールのその他の機能です。

Amazon Cognito の認証と認可のモデルの概要については、「Amazon Cognito による認証の仕組み」を参照してください。

ユーザープール認証に成功した後、他の AWS のサービス にアクセスするには、「サインイン後にアイデンティティプールを使用して AWS のサービス にアクセスする」を参照してください。

AWS Management Console とユーザープール SDK を使用する以外に、AWS Command Line Interface を使用してユーザープールを管理することもできます。

新しいユーザープールを作成する

次の手順は、Amazon Cognito コンソールで新しいユーザープールを作成するための一般的なガイドです。コンソールに直接スキップして、ガイド付きエクスペリエンスとインラインヘルプコンテンツに従うこともできます。

新しいユーザープールを作成する
  1. Amazon Cognito コンソールに移動します。プロンプトが表示されたら、AWS 認証情報を入力します。

  2. [ユーザープールを作成] ボタンを選択します。このオプションを表示するには、左側のナビゲーションペインから [ユーザープール] を選択する必要があります。

  3. ページの右上隅にある [Create a user pool] (ユーザープールを作成する) を選択して、ユーザープール作成のウィザードを開始します。

  4. [サインインエクスペリエンスを設定] で、このユーザープールで使用する ID プロバイダー (IdP) を選択できます。詳細については、「サードパーティー経由のユーザープールへのサインインの追加」を参照してください。

    1. [認証プロバイダー][プロバイダータイプ] では、[Cognito ユーザープール] のみが選択されていることを確認します。

    2. [Cognito ユーザープールのサインインオプション] で、[ユーザー名] を選択します。追加の [ユーザー名の要件] は選択しないでください。

    3. 他のオプションをすべてデフォルトのまま保持して、[次へ] を選択します。

  5. [セキュリティ要件を設定] で、パスワードポリシー、多要素認証 (MFA) 要件、ユーザーアカウントの復旧オプションを選択できます。詳細については、「Amazon Cognito ユーザープールのセキュリティ機能を使用する」を参照してください。

    1. [パスワードポリシー] については、[パスワードポリシーモード][Cognito のデフォルト] に設定されていることを確認します。

    2. [多要素認証] で、[MFA の強制] については、[オプションの MFA] を選択します。

    3. [MFA の方法] については、[認証アプリケーション][SMS メッセージ] を選択します。

    4. [ユーザーアカウントの復旧] については、[セルフサービスのアカウントの復旧を有効化] が選択され、ユーザーアカウント復旧メッセージの配信方法が [E メールのみ] に設定されていることを確認します。

    5. 他のオプションをすべてデフォルトのまま保持して、[次へ] を選択します。

  6. [サインアップエクスペリエンスを設定] で、新規ユーザーが新規ユーザーとしてサインアップする時に自分の ID を検証する方法と、ユーザーのサインアップフローで必須またはオプションにする属性を決定します。詳細については、「ユーザープール内のユーザーを管理する」を参照してください。

    1. [自己登録を有効化] が選択されていることを確認します。この設定により、インターネット上のすべてのユーザーがサインアップできるようにユーザープールが開きます。これはサンプルアプリケーションを目的としていますが、本番環境ではこの設定を慎重に適用してください。

    2. [Cognito による検証と確認] で、[Cognito が検証と確認のためのメッセージを自動的に送信することを許可] のチェックボックスが選択されていることを確認します。

    3. [検証する属性][E メールのメッセージを送信、E メールアドレスを検証] に設定されていることを確認します。

    4. [属性変更の確認] で、デフォルトのオプションが次のように選択されていることを確認します。[更新が保留中の場合は元の属性値を保持] が選択されており、[更新が保留中の場合のアクティブな属性値][E メールアドレス] に設定します。

    5. [必須の属性] で、[前の選択に基づく必須の属性][E メール] が表示されることを確認します。

      重要

      このサンプルアプリケーションでは、ユーザープールで [phone_number] を必須の属性として設定しないでください。[phone_number] が必須の属性として表示されている場合は、前の選択肢を確認して更新します。

      • [ユーザーアカウントの復旧メッセージの配信方法] については、[オプションの MFA][E メールのみ]

      • [検証する属性] については、[E メールのメッセージを送信、E メールアドレスを検証]

    6. 他のオプションをすべてデフォルトのまま保持して、[次へ] を選択します。

  7. [メッセージ配信を設定] で、Amazon Simple Email Service および Amazon Simple Notification Service との統合を構成して、サインアップ、アカウント確認、MFA、およびアカウントの復旧用に E メールおよび SMS メッセージをユーザーに送信できます。詳細については、Amazon Cognito ユーザープールの E メール設定およびAmazon Cognito ユーザープール用の SMS メッセージ設定を参照してください。

    1. [E メールプロバイダー] については、[Cognito で E メールを送信] を選択し、Amazon Cognito が提供するデフォルトの E メール送信者を使用します。E メールボリュームが少ない場合には、この設定でアプリケーションのテストに十分です。Amazon Simple Email Service (Amazon SES) で E メールアドレスを検証し、[Amazon SES で E メールを送信] を選択すると、返すことができます。

    2. [SMS] については、[新しい IAM ロールを作成] を選択し、[IAM ロール名] を入力します。これにより、SMS メッセージを送信するアクセス許可を Amazon Cognito に付与するロールが作成されます。

    3. 他のオプションをすべてデフォルトのまま保持して、[次へ] を選択します。

  8. [アプリケーションを統合] で、ユーザープールに名前を付け、ホストされた UI を設定し、アプリケーションクライアントを作成できます。詳細については、「ホストされた UI を使用してアプリケーションクライアントを追加する」を参照してください。サンプルアプリケーションは、ホストされた UI を使用しません。

    1. [ユーザープール名] に、[ユーザープール名] を入力します。

    2. [Cognito のホストされた UI を使用] は選択しないでください。

    3. [最初のアプリケーションクライアント] で、[アプリケーションタイプ][パブリッククライアント] に設定されていることを確認します。

    4. [クライアントのシークレット] で、[クライアントのシークレットを生成しない] が選択されていることを確認します。

    5. [App client name] (アプリケーションクライアント名) を入力します。

    6. [高度なアプリケーションクライアントの設定] を展開します。[認証フロー] のリストに ALLOW_USER_PASSWORD_AUTH を追加します。

    7. 他のオプションをすべてデフォルトのまま保持して、[次へ] を選択します。

  9. [確認および作成] 画面で選択を確認し、必要に応じて選択内容を変更します。ユーザープールの構成に問題がなければ、[ユーザープールを作成] を選択して続行します。

  10. [ユーザープール] ページから、新しいユーザープールを選択します。

  11. [ユーザープールの概要] にある [ユーザープール ID] を書き留めます。サンプルアプリケーションを作成するときに、この文字列を入力することになります。

  12. [アプリケーションの統合] タブを選択し、[アプリケーションクライアントと分析] セクションを見つけます。新しいアプリケーションクライアントを選択します。[クライアント ID] を書き留めます。

ユーザープールを作成する
  1. Amazon Cognito コンソールに移動します。プロンプトが表示されたら、AWS 認証情報を入力します。

  2. [User Pools] (ユーザープール) を選択します。

  3. ページの右上隅にある [Create a user pool] (ユーザープールを作成する) を選択して、ユーザープール作成のウィザードを開始します。

  4. [Configure sign-in experience] (サインインエクスリエンスを構成する) で、このユーザープールで使用するフェデレーションプロバイダーを選択します。詳細については、「サードパーティー経由のユーザープールへのサインインの追加」を参照してください。

  5. [Configure security requirements] (セキュリティ要件の設定) で、パスワードポリシー、多要素認証 (MFA) 要件、ユーザーアカウントの回復オプションを選択します。詳細については、「Amazon Cognito ユーザープールのセキュリティ機能を使用する」を参照してください。

  6. [Configure sign-up experience] (サインアップエクスペリエンスの設定) で、新規ユーザーがサインアップ時に自分の ID を確認する方法と、ユーザーのサインアップフローで必須またはオプションにする属性を決定します。詳細については、「ユーザープール内のユーザーを管理する」を参照してください。

    重要

    ユーザープールでユーザーサインアップを有効にすると、インターネット上のすべてのユーザーがアカウントにサインアップしてアプリケーションにサインインできるようになります。アプリケーションをパブリックサインアップで開く場合を除き、ユーザープールで自己登録を有効にしないでください。この設定を変更するには、ユーザープールコンソールの [サインアップエクスペリエンス] タブで [セルフサービスのサインアップ] を更新するか、CreateUserPool または UpdateUserPool API リクエストで AllowAdminCreateUserOnly の値を更新します。

    ユーザープールに設定できるセキュリティ機能については、「Amazon Cognito ユーザープールのセキュリティ機能を使用する」を参照してください。

  7. [Configure message delivery] (メッセージ配信の設定) で、Amazon Simple Email Service および Amazon Simple Notification Service との統合を構成して、サインアップ、アカウント確認、MFA、およびアカウントの復元用に E メールおよび SMS メッセージをユーザーに送信します。詳細については、Amazon Cognito ユーザープールの E メール設定およびAmazon Cognito ユーザープール用の SMS メッセージ設定を参照してください。

  8. [Integrate your app] (アプリケーションの統合) で、ユーザープールに名前を付け、ホストされた UI を設定し、アプリケーションクライアントを作成します。詳細については、「ホストされた UI を使用してアプリケーションクライアントを追加する」を参照してください。

  9. [確認および作成] 画面で選択を確認し、必要に応じて選択内容を変更します。ユーザープールの構成に問題がなければ、[ユーザープールを作成] を選択して続行します。

ユーザープールの詳細については、「Amazon Cognito user pools」を参照してください。

ユーザープール認証フロー」および「ユーザープール JSON ウェブトークン (JWT) の理解」も参照してください。