E メールまたは電話による検証の設定 - Amazon Cognito

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

E メールまたは電話による検証の設定

E メールまたは電話による確認の設定は、[メッセージング] タブで選択できます。多要素認証 (MFA) の詳細については、「SMS テキストメッセージ MFA」を参照してください。

Amazon Cognito は、SMS メッセージの送信に Amazon SNS を使用します。Amazon Cognito または他の から SMS メッセージを送信したことがない場合 AWS のサービス 、Amazon SNS はアカウントを SMS サンドボックスに配置することがあります。アカウントをサンドボックスから本番環境に削除する前に、検証済みの電話番号にテストメッセージを送信することをお勧めします。さらに、米国の宛先電話番号に SMS メッセージを送信する場合は、Amazon Pinpoint から発信元 ID または送信者 ID を取得する必要があります。SMS メッセージ用に Amazon Cognito ユーザープールを設定するには、「Amazon Cognito ユーザープール用の SMS メッセージ設定」を参照してください。

Amazon Cognito は、E メールアドレスまたは電話番号を自動的に検証できます。この検証を行うために、Amazon Cognito は検証コードまたは検証リンクを送信します。E メールアドレスの場合、Amazon Cognito は、コードまたはリンクを E メールメッセージで送信できます。Amazon Cognito コンソールの [メッセージング] タブで [検証メッセージ] テンプレートを編集するときに、検証タイプとしてコードまたはリンクを選択できます。詳細については、「E メール検証メッセージのカスタマイズ」を参照してください。

電話番号の場合、Amazon Cognito は、コードを SMS テキストメッセージで送信します。

Amazon Cognito は、ユーザーを確認し、パスワードを忘れた場合の回復を支援するために、電話番号または E メールアドレスを検証する必要があります。または、サインアップ前の Lambda トリガーでユーザーを自動的に確認するか、 AdminConfirmSignUp API オペレーションを使用できます。詳細については、「ユーザーアカウントのサインアップと確認」を参照してください。

確認コードまたはリンクは 24 時間有効です。

E メールアドレスや電話番号の検証を必須とした場合、Amazon Cognito はユーザーのサインアップ時に自動的に検証コードまたはリンクを送信します。ユーザープールに カスタム SMS 送信者の Lambda トリガー または カスタム E メール送信者の Lambda トリガー を設定すると、その関数が代わりに呼び出されます。

メモ
  • 電話番号の検証に SMS テキストメッセージングを使用すると、Amazon SNS の料金が別途請求されます。E メールメッセージを送信しても料金はかかりません。Amazon SNS の料金については、「Worldwide SMS Pricing」を参照してください。SMS メッセージを利用可能な国の最新のリストについては、「サポートされるリージョンと国」を参照してください。

  • Amazon Cognito からの E メールメッセージを生成するアプリ内のアクションをテストするときは、Amazon Cognito がハードバウンスを発生させずに送信できる実際の E メールアドレスを使用してください。詳細については、「アプリケーションのテスト中に E メールを送信する」を参照してください。

  • パスワードを忘れた場合のフローでは、ユーザーのメールまたはユーザーの電話番号が検証される必要があります。

重要

ユーザーが電話番号と E メールアドレスの両方にサインアップし、ユーザープール設定で両方の属性の確認が必要な場合は、Amazon Cognito は、検証コードを SMS メッセージ経由で電話番号に送信します。Amazon Cognito は E メールアドレスをまだ検証していないため、アプリは GetUserを呼び出して、E メールアドレスが検証を待っているかどうかを確認する必要があります。検証が必要な場合、アプリは を呼び出しGetUserAttributeVerificationCodeて E メール検証フローを開始する必要があります。次に、 を呼び出して検証コードを送信する必要がありますVerifyUserAttribute

SMS メッセージの支出クォータは、 AWS アカウント および個々のメッセージに対して調整できます。制限は SMS メッセージを送信するコストにのみ適用されます。詳細については、Amazon SNS よくある質問の「アカウントレベルとメッセージレベルの支出クォータとは何ですか。また、どのように機能しますか。」を参照してください。

Amazon Cognito は、ユーザープール AWS リージョン を作成した または次の表のレガシー Amazon SNS 代替リージョンのいずれかで、Amazon SNS リソースを使用して SMS メッセージを送信します。 Amazon SNS 例外は、アジアパシフィック (ソウル) リージョンの Amazon Cognito ユーザープールです。これらのユーザープールは、アジアパシフィック (東京) リージョンで Amazon SNS 設定を使用します。詳細については、「Amazon SNS SMS メッセージの AWS リージョン を選択する」を参照してください。

Amazon Cognito リージョン レガシー Amazon SNS 代替リージョン
米国東部 (オハイオ) 米国東部 (バージニア北部)
アジアパシフィック(ムンバイ) アジアパシフィック (シンガポール)
アジアパシフィック (ソウル) アジアパシフィック (東京)
カナダ (中部) 米国東部 (バージニア北部)
欧州 (フランクフルト) 欧州 (アイルランド)
欧州 (ロンドン) 欧州 (アイルランド)

例: Amazon Cognito のユーザープールがアジアパシフィック (ムンバイ) にあり、ap-southeast-1 で使用制限を引き上げている場合は、ap-south-1 で別途引き上げる要求をしないでください。代わりに、アジアパシフィック (シンガポール) で Amazon SNS リソースを使用できます。

E メールアドレスと電話番号の更新を検証する

E メールアドレスまたは電話番号の属性は、ユーザーが値を変更した直後にアクティブになり、検証されない場合があります。Amazon Cognito は、Amazon Cognito が属性を更新する前に、ユーザーに新しい値を検証するように要求することもできます。ユーザーが新しい値を最初に検証することを要求する場合、新しい値を検証するまでは、サインインおよびメッセージの受信に元の値を使用することができます。

ユーザーがユーザープールの E メールアドレスまたは電話番号をサインインエイリアスとして使用できる場合、更新された属性のサインイン名は、更新された属性の検証が必要かどうかによって異なります。更新された属性を検証する必要がある場合、新しい値を検証するまで、ユーザーは元の属性値を使用してサインインできます。更新された属性を検証する必要がない場合、新しい値を検証するまで、ユーザーは新しい属性値または元の属性値でサインインまたはメッセージを受信することはできません。

例えば、ユーザープールでは、E メールアドレスのエイリアスでのサインインが許可され、ユーザーが更新時に E メールアドレスを検証する必要があるとします。sue@example.com としてサインインしている Sue は、自分の E メールアドレスを sue2@example.com に変更しようとしましたが、誤って ssue2@example.com と入力してしまいました。Sue は確認用の E メールを受信していないので、ssue2@example.com を検証することができません。sue@example.com としてサインインし、アプリでフォームを再送信して、E メールアドレスを sue2@example.com に更新します。この E メールを受信し、アプリに確認コードを提供して、sue2@example.com としてサインインを開始します。

ユーザーが属性を更新し、ユーザープールが新しい属性値を検証する場合
  • コードを確認する前は、元の属性値でサインインして新しい値を確認できます。

  • コードを確認した後は、新規の属性値でサインインして新しい値を確認できます。

  • AdminUpdateUserAttributes API リクエストtrueemail_verifiedまたは phone_number_verifiedを に設定した場合、Amazon Cognito が送信したコードを確認する前にサインインできます。

ユーザーが属性を更新し、ユーザープールが新しい属性値を検証しない場合
  • 元の属性値を使用してサインインしたり、元の属性値でメッセージを受信したりすることはできません。

  • 新しい値を確認するコードを確認するま、新しい属性値を使用してサインインしたり、確認コード以外のメッセージを受信したりすることはできません。

  • AdminUpdateUserAttributes API リクエストtrueemail_verifiedまたは phone_number_verifiedを に設定した場合、Amazon Cognito が送信したコードを確認する前にサインインできます。

ユーザーが E メールアドレスまたは電話番号を更新するときに属性の検証を要求するには

  1. Amazon Cognito コンソールにサインインします。プロンプトが表示されたら、 AWS 認証情報を入力します。

  2. ナビゲーションペインで [User Pools] (ユーザープール) を選択してから、編集するユーザープールを選択します。

  3. [Sign-up experience] (サインアップエクスペリエンス) タブで、[Attribute verification and user account confirmation] (属性の検証とユーザーアカウントの確認) から [Edit] (編集) を選択します。

  4. [Keep original attribute value active when an update is pending] (更新が保留中の場合、元の属性値をアクティブに保つ) を選択します。

  5. [Active attribute values when an update is pending] (更新が保留中の場合にアクティブな属性値) から、Amazon Cognito が値を更新する前にユーザーに検証を要求する属性を選択します。

  6. [変更を保存] を選択します。

Amazon Cognito API で属性更新の検証を要求するには、 UpdateUserPoolリクエストで AttributesRequireVerificationBeforeUpdateパラメータを設定できます。

SMS メッセージを代理送信するために Amazon Cognito を承認します。

SMS メッセージをユーザーに代理送信するには、Amazon Cognito に許可が必要です。このアクセス許可を付与するには、 AWS Identity and Access Management (IAM) ロールを作成します。Amazon Cognito コンソールの [メッセージング] タブの [SMS] で、[編集] を選択してロールを設定します。