管理者としてのユーザーアカウントの作成
ユーザープールは、インターネット上の誰でもアプリケーション内のユーザープロファイルにサインアップできるという、Customer Identity and Access Management (CIAM) のユーザーディレクトリであるだけでありません。セルフサービスサインアップを無効にすることができます。顧客の本人確認が済んでいる場合に、事前に認可された顧客のみを認めることをお勧めします。プライベート SAML 2.0 または OIDC ID プロバイダーを使用して、アプリケーションの周囲に手動認証ガードレールを配置するには、ユーザーをインポートするか、サインアップ時にユーザーをスクリーニングするか、または、管理 API オペレーションを使用してユーザーを作成します。ユーザーの管理作成ワークフローは、プログラムによることでも、別のシステムに登録した後にユーザーをプロビジョニングすることでも、Amazon Cognito コンソールでケースバイケースやテストベースで作成することでも可能です。
ユーザーを管理者として作成すると、Amazon Cognito は、ユーザーの一時的なパスワードを設定し、ウェルカムメッセージまたは招待メッセージを送信します。招待メッセージのリンクに従って初回のサインインを行い、パスワードを設定し、アカウントを確認できます。次のページでは、新しいユーザーを作成し、ウェルカムメッセージを設定する方法について説明します。ユーザープール API と AWS SDK または CDK を使用したユーザー作成の詳細については、「AdminCreateUser」を参照してください。
ユーザープールを作成したら、AWS マネジメントコンソール、AWS Command Line Interface または Amazon Cognito API を使用してユーザーを作成できます。ユーザープールで新しいユーザーのプロファイルを作成し、サインアップ手順を含めたウェルカムメッセージをそのユーザーに SMS または E メールで送信できます。
管理者がユーザープール内のユーザーを管理する方法の例を以下に示します。
-
Amazon Cognito コンソールまたは
AdminCreateUserAPI オペレーションを使用して新しいユーザープロファイルを作成します。 -
ユーザー名パスワード、パスワードなし、パスキー、カスタム認証フローを、ユーザープールとアプリケーションクライアントで利用できるようにします。
-
ユーザー属性値を設定します。
-
カスタム属性を作成します。
-
AdminCreateUserAPI リクエストに、イミュータブルなカスタム属性の値を設定します。この機能は Amazon Cognito コンソールでは利用できません。 -
仮パスワードを指定するか、パスワードなしでユーザーを作成するか、または Amazon Cognito にパスワードの自動生成を許可します。
-
新しいユーザーを作成し、アカウントの確認、E メールアドレスの検証、または電話番号の検証を自動的に行います。
-
AWS マネジメントコンソールまたは Lambda トリガー (カスタムメッセージ、カスタム SMS 送信者、カスタム E メール送信者など) を使用して、新規ユーザーのカスタム SMS および E メール招待メッセージを指定します。
-
招待メッセージが SMS、E メール、その両方のいずれで送信されるかを指定する。
-
AdminCreateUserパラメータにRESENDを指定して、MessageActionAPI を呼び出すことで、既存のユーザーにウェルカムメッセージを再送信する。 -
ユーザー作成時の招待メッセージの送信を抑制します。
-
新規ユーザーアカウントの有効期限を最大 90 日に指定します。
-
ユーザーに自己サインアップを許可したり、管理者にのみ新しいユーザーの追加を許可したりする。
管理者は、サーバー側のアプリケーションで AWS 認証情報を使用して、ユーザーをサインインさせることもできます。詳細については、「API 認証と SDK 認証の認可モデル」を参照してください。
ユーザー認証フローとユーザーの作成
管理者がユーザーを作成する場合、ユーザープールの設定に応じて異なるオプションを使用できます。認証フロー (ユーザーがサインインと MFA に使用できる方法) に応じて、ユーザーの作成方法とユーザーへの送信メッセージが変わる場合があります。ユーザープールで使用できる認証フローをいくつか以下に示します。
-
ユーザー名とパスワード
-
パスキー
-
サードパーティの IdP によるサインイン
-
E メールおよび SMS ワンタイムパスワード (OTP) によるパスワードなしのサインイン
-
E メール、SMS、Authenticator アプリケーション OTP による多要素認証
-
Lambda トリガーによるカスタム認証
これらのサインイン要素の設定方法の詳細については、「Amazon Cognito ユーザープールによる認証」を参照してください。
パスワードなしでユーザーを作成する
ユーザープールでパスワードなしのサインインを有効にしている場合は、パスワードなしでユーザーを作成できます。パスワードなしでユーザーを作成するには、使用可能なパスワードなしのサインイン要素の属性値を指定する必要があります。例えば、E メール OTP によるパスワードなしのサインインがユーザープールで使用可能な場合は、パスワードなしで、E メールアドレス属性を持つユーザーを作成できます。新規ユーザーが使用できる認証フローにパスワード (パスキー、ユーザー名パスワードなど) のみが必要である場合は、新規ユーザーごとに仮パスワードを作成または生成する必要があります。
パスワードなしの新規ユーザーを作成するには
-
Amazon Cognito コンソールで [パスワードを設定しない] を選択します。
-
AdminCreateUserAPI リクエストのTemporaryPasswordパラメータを省略するか、空白のままにします。
パスワードなしのユーザーは自動的に確認される
通常、新規ユーザーは作成時に仮パスワードを取得し、FORCE_CHANGE_PASSWORD ステータスになります。パスワードなしのユーザーを作成すると、すぐに CONFIRMED 状態になります。CONFIRMED 状態のユーザーに確認コードを再送信することはできません。
パスワードなしのユーザーの場合、招待メッセージは変更される
デフォルトでは、Amazon Cognito から新規ユーザーに送信される招待メッセージは、「Your username is {userName} and your password
is {####}.」という内容です。パスワードなしのユーザーを作成すると、メッセージの内容は「Your
username is {userName}.」となります。ユーザーのパスワードを設定するかどうかを反映するには、招待メッセージをカスタマイズします。パスワードなしの認証モデルで {####} パスワード変数を省略します。
パスワードなしの要素が利用可能な場合、パスワードは自動生成できない
E メールまたは電話の OTP によるパスワードなしのサインインをサポートするようにユーザープールを設定している場合、パスワードを自動生成することはできません。パスワードを持つユーザーごとに、プロファイルの作成時に、仮パスワードを設定する必要があります。
パスワードなしのユーザーは、すべての必須属性の値を持っている必要がある
パスワードなしのユーザーを作成する場合、リクエストが成功するのは、ユーザープールで必須としてマークされたすべての属性の値をユーザーが提供した場合のみです。これは、OTP 配信に必要な電話番号と E メールアドレスの属性だけでなく、すべての必須属性に適用されます。
後で必須属性の値を提供するユーザーを作成する
ユーザープールで属性を必須に設定できますが、管理者によるユーザーの作成後に、アプリケーション内でユーザーとやり取りしながら、これらの属性を収集することもできます。管理者は、仮パスワードを使用してユーザーを作成するときに、必須属性の値を省略できます。パスワードなしのユーザーの場合、必須属性の値を省略することはできません。
ユーザーが必須属性の値が不足したまま仮パスワードを使用すると、初回サインイン時に NEW_PASSWORD_REQUIRED チャレンジを受け取ります。この場合、不足している必須属性の値を requiredAttributes パラメータで指定できます。すべての必須属性が変更可能である場合にのみ、パスワードを持つが必須属性を持たないユーザーを作成できます。ユーザーは、サインインに使用したアプリケーションクライアントから必須属性が書き込み可能である場合に限り、NEW_PASSWORD_REQUIRED チャレンジと必須属性の値を使用してサインインを完了できます。
管理者が作成したユーザーに永続的なパスワードを設定すると、ステータスは CONFIRMED に変わり、ユーザープールは初回サインイン時に新しいパスワードまたは必須属性の入力を求めません。
AWS マネジメントコンソール での新しいユーザーの作成
Amazon Cognito コンソールを使用して、ユーザーパスワードの要件を設定し、ユーザーに送信される招待メッセージと確認メッセージを設定し、新しいユーザーを追加できます。
パスワードポリシーを設定し、自己登録を有効にする
パスワードの複雑さを最小限に抑え、ユーザープールでパブリック API を使用してユーザーがサインアップできるかどうかを設定できます。
パスワードポリシーの設定
-
[Amazon Cognito console]
(Amazon Cognito コンソール) に移動し、[User Pools] (ユーザープール) を選択します。 -
リストから既存のユーザープールを選択、またはユーザープールを作成します。
-
[認証方法] メニューを選択し、[パスワードポリシー] を見つけます。[編集] を選択します。
-
[Custom] (カスタム) の [Password policy mode] (パスワードポリシーモード) を選択します。
-
[Password minimum length] (パスワードの最小長) を選択します。パスワード長要件の制限については、「ユーザープールのリソースクォータ」を参照してください。
-
[Password complexity] (パスワードの複雑さ) 要件を選択してください。
-
管理者が設定したパスワードの有効期間を選択します。
-
[Save changes] (変更の保存) をクリックします。
セルフサービスサインアップを許可する
-
[Amazon Cognito console]
(Amazon Cognito コンソール) に移動し、[User Pools] (ユーザープール) を選択します。 -
リストから既存のユーザープールを選択、またはユーザープールを作成します。
-
[サインアップ] メニューを選択し、[セルフサービスのサインアップ] を見つけます。[Edit] (編集) を選択します。
-
[Enable self-registration] (自己登録を有効化) するかどうかを選択します。自己登録は、通常、クライアントシークレット、または AWS Identity and Access Management (IAM) API 認証情報を配布せずにユーザープールに新しいユーザーを登録する必要があるパブリックアプリケーションクライアントで使用されます。
自己登録の無効化
自己登録を有効にしない場合は、IAM API 認証情報、またはフェデレーションプロバイダーとのサインインを使用して管理 API アクションで新しいユーザーを作成する必要があります。
-
[Save changes] (変更の保存) をクリックします。
E メールメッセージと SMS メッセージのカスタマイズ
ユーザーメッセージのカスタマイズ
Amazon Cognito がユーザーにサインインするように招待したとき、ユーザーがユーザーアカウントへのサインアップ、またはサインインして多要素認証 (MFA) を要求される際に Amazon Cognito はユーザーに送信するメッセージをカスタマイズできます。
注記
[Invitation message] (招待メッセージ) はユーザープールにユーザーを作成し、サインインに招待すると送信されます。Amazon Cognito はユーザーの E メールアドレスまたは電話番号に初期サインイン情報を送信します。
検証メッセージは、ユーザーがユーザープールのユーザーアカウントに登録したときに送信されます。Amazon Cognito はユーザーにコードを送信します。ユーザーが Amazon Cognito にコードを提供すると、連絡先情報を確認し、サインインのためにアカウントを確認します。検証コードは 24 時間有効です。
[MFA message] (MFA メッセージ) は、ユーザープールで SMS MFA を有効にし、SMS MFA を構成したユーザーがサインインして MFA を要求されたときに送信されます。
-
[Amazon Cognito console]
(Amazon Cognito コンソール) に移動し、[User Pools] (ユーザープール) を選択します。 -
リストから既存のユーザープールを選択、またはユーザープールを作成します。
-
[メッセージテンプレート] メニューを選択して、[検証メッセージ]、[招待メッセージ]、または [MFA メッセージ] を選択し、[編集] を選択します。
-
選択したメッセージタイプのメッセージをカスタマイズします。
注記
メッセージをカスタマイズするときは、メッセージテンプレート内のすべての変数を含める必要があります。例えば、変数の場合 {####} は含まれません。ユーザーにはメッセージアクションを完了するのに十分な情報がありません。
詳細については、「メッセージテンプレート」を参照してください。
-
-
検証メッセージ
-
[Email] (E メール) メッセージの [Verification type] (検証タイプ) を選択します。[Code] (コード) 検証は、ユーザーが入力する必要がある数値コードを送信します。[Link] (リンク) 検証は、ユーザーがクリックして連絡先情報を検証できるリンクを送信します。変数内のテキスト [Link] (リンク) メッセージはハイパーリンクテキストとして表示されます。例えば、変数 {# #Click here##} を使用したメッセージテンプレートは、E メールメッセージで「Click here (ここをクリックしてください) 」というように表示されます。
-
[Email] (E メール) メッセージの [Email subject] (E メールの件名) を入力します。
-
[Email] (E メール) メッセージのカスタムの [Email message] (E メールメッセージ) のテンプレートを入力します。このテンプレートは HTML でカスタマイズできます。
-
[SMS] メッセージのカスタムの [SMS message] (SMS メッセージ) のテンプレートを入力します。
-
[Save changes] (変更の保存) をクリックします。
-
-
Invitation messages] (招待メッセージ
-
[Email] (E メール) メッセージの [Email subject] (E メールの件名) を入力します。
-
[Email] (E メール) メッセージのカスタムの [Email message] (E メールメッセージ) のテンプレートを入力します。このテンプレートは HTML でカスタマイズできます。
-
[SMS] メッセージのカスタムの [SMS message] (SMS メッセージ) のテンプレートを入力します。
-
[Save changes] (変更の保存) をクリックします。
-
-
MFA メッセージ
-
[SMS] メッセージのカスタムの [SMS message] (SMS メッセージ) のテンプレートを入力します。
-
[Save changes] (変更の保存) をクリックします。
-
-
ユーザーの作成
ユーザーの作成
Amazon Cognito コンソールからユーザープールの新しいユーザーを作成できます。通常、ユーザーはパスワードを設定した後にサインインできます。E メールアドレスでサインインするには、ユーザーは email 属性を確認する必要があります。電話番号でサインインするには、ユーザーは phone_number 属性を確認する必要があります。管理者としてのアカウントを確認するには、AWS CLI または API を使用するか、フェデレーション ID プロバイダーを使用してユーザープロファイルを作成することもできます。詳細については、「Amazon Cognito API Reference」を参照してください。
-
[Amazon Cognito console]
(Amazon Cognito コンソール) に移動し、[User Pools] (ユーザープール) を選択します。 -
リストから既存のユーザープールを選択、またはユーザープールを作成します。
-
[ユーザー] メニュー、[ユーザーを作成] の順に選択します。
-
パスワード要件、使用可能なアカウント回復方法、およびユーザープールのエイリアス属性に関するガイダンスは、「ユーザープールのサインインとセキュリティ要件」を参照してください。
-
招待メッセージの送信方法を選択します。SMS メッセージ、E メールメッセージ、または両方を選択します。招待メッセージを抑制するには、[招待を送信しない] を選択します。
注記
招待メッセージを送信する前に、ユーザープールの [認証方法] メニューで、Amazon Simple Notification Service および Amazon Simple Email Service により、送信者と AWS リージョンを設定します。受信者メッセージとデータレートが適用されます。Amazon SES は、メールメッセージの請求を別途請求し、Amazon SNS は SMS メッセージについて別途請求します。
-
新規ユーザー用に [Username] (ユーザー名) を選択します。
-
[Create a password] (パスワードを作成する) または、Amazon Cognito にユーザーの [Generate a password] (パスワードを生成する) を許可するかどうかを選択してください。[パスワードなしのサインイン] がユーザープールで利用可能な場合、パスワードを生成するオプションは使用できません。一時パスワードは、ユーザープールのパスワードポリシーに準拠する必要があります。
-
[作成] を選択します。
-
[ユーザー] メニューを選択し、[ユーザー名] でユーザー名を入力します。[User attributes] (ユーザー属性) および [Group memberships] (グループメンバーシップ) を追加して編集します。ユーザーイベント履歴の確認