管理者としてのユーザーアカウントの作成
ユーザープールは、インターネット上の誰でもアプリケーション内のユーザープロファイルにサインアップできるという、Customer Identity and Access Management (CIAM) のユーザーディレクトリであるだけでありません。セルフサービスサインアップを無効にすることができます。顧客の本人確認が済んでいる場合に、事前に認可された顧客のみを認めることをお勧めします。プライベート SAML 2.0 または OIDC ID プロバイダーを使用して、アプリケーションの周囲に手動認証ガードレールを配置するには、ユーザーをインポートするか、サインアップ時にユーザーをスクリーニングするか、または、管理 API オペレーションを使用してユーザーを作成します。ユーザーの管理作成ワークフローは、プログラムによることでも、別のシステムに登録した後にユーザーをプロビジョニングすることでも、Amazon Cognito コンソールでケースバイケースやテストベースで作成することでも可能です。
ユーザーを管理者として作成すると、Amazon Cognito は、ユーザーの一時的なパスワードを設定し、ウェルカムメッセージまたは招待メッセージを送信します。招待メッセージのリンクに従って初回のサインインを行い、パスワードを設定し、アカウントを確認できます。次のページでは、新しいユーザーを作成し、ウェルカムメッセージを設定する方法について説明します。ユーザープール API と AWS SDK または CDK を使用したユーザー作成の詳細については、「AdminCreateUser」を参照してください。
ユーザープールを作成したら、AWS Management Console、AWS Command Line Interface または Amazon Cognito API を使用してユーザーを作成できます。ユーザープールで新しいユーザーのプロファイルを作成し、サインアップ手順を含めたウェルカムメッセージをそのユーザーに SMS または E メールで送信できます。
デベロッパーと管理者は以下のタスクを実行できます。
-
AWS Management Console を使用するか、
AdminCreateUser
API を呼び出すことで、新しいユーザープロファイルを作成します。 -
ユーザー属性値を設定します。
-
カスタム属性を作成します。
-
AdminCreateUser
API リクエストにイミュータブルなカスタム属性の値を設定します。この機能は Amazon Cognito コンソールでは利用できません。 -
一時パスワードを指定する、または Amazon Cognito が一時パスワードを自動生成できるようにする。
-
提供された E メールアドレスと電話番号が新しいユーザーに対して確認済みとマークされているかどうかを指定する。
-
AWS Management Console またはカスタムメッセージ Lambda トリガーを使用して、新しいユーザー向けのカスタム SMS および E メール招待メッセージを指定する。詳細については、「Lambda トリガーを使用したユーザープールワークフローのカスタマイズ」を参照してください。
-
招待メッセージが SMS、E メール、その両方のいずれで送信されるかを指定する。
-
AdminCreateUser
パラメータにRESEND
を指定して、MessageAction
API を呼び出すことで、既存のユーザーにウェルカムメッセージを再送信する。注記
このアクションは現在、AWS Management Console を使用して実行することはできません。
-
ユーザー作成時の招待メッセージが送信されないようにする。
-
ユーザーアカウントの有効期限を指定する (最大 90 日)。
-
ユーザーに自己サインアップを許可したり、管理者にのみ新しいユーザーの追加を許可したりする。
管理者またはデベロッパーによって作成されるユーザーの認証フロー
これらのユーザーの認証フローには、新しいパスワードを送信するためや、必須の属性の未設定値を指定するための、追加の手順が含まれます。これらの手順は以下に説明しており、手順 5、6、7 はこれらのユーザーに固有のものです。
-
ユーザーは、ユーザー名とパスワードを送信することで、初回のログインを開始します。
-
SDK が
InitiateAuth(Username, USER_SRP_AUTH)
を呼び出します。 -
Amazon Cognito が Salt & Secret ブロックで
PASSWORD_VERIFIER
チャレンジを返します。 -
SDK が SRP 計算を実行し、
RespondToAuthChallenge(Username,
を呼び出します。<SRP variables>
, PASSWORD_VERIFIER) -
Amazon Cognito は
NEW_PASSWORD_REQUIRED
チャレンジを返します。このチャレンジの本文には、ユーザーの現在の属性、およびユーザーのプロファイル内で現時点で値がないユーザープールの必須属性が含まれます。詳細については、「RespondToAuthChallenge」を参照してください。 -
ユーザーは新しいパスワードと必須の属性の未設定値を入力するように求められます。
-
SDK が
RespondToAuthChallenge(Username,
を呼び出します。<New password>
,<User attributes>
) -
ユーザーに MFA の 2 番目の要素が必要な場合、Amazon Cognito が SMS_MFA チャレンジを返し、コードが送信されます。
-
ユーザーが正常に自分のパスワードを変更し、必要に応じて属性の値を指定するか MFA を完了すると、ユーザーがサインインされ、トークンが発行されます。
ユーザーがすべてのチャレンジに合格すると、Amazon Cognito サービスがユーザーを確認済みとマークし、ユーザーに ID トークン、アクセストークン、および更新トークンを発行します。詳細については、「ユーザープール JSON ウェブトークン (JWT) の理解」を参照してください。
AWS Management Console での新しいユーザーの作成
Amazon Cognito コンソールを使用して、ユーザーパスワードの要件を設定し、ユーザーに送信される招待メッセージと確認メッセージを設定し、新しいユーザーを追加できます。
パスワードポリシーを設定し、自己登録を有効にする
パスワードの複雑さを最小限に抑え、ユーザープールでパブリック API を使用してユーザーがサインアップできるかどうかを設定できます。
パスワードポリシーの設定
-
[Amazon Cognito console]
(Amazon Cognito コンソール) に移動し、[User Pools] (ユーザープール) を選択します。 -
リストから既存のユーザープールを選択するか、ユーザープールを作成します。
-
[Sign-in experience] (サインインエクスペリエンス) タブを選択して、[Password policy] (パスワードポリシー) を検索します。[編集] を選択します。
-
[Custom] (カスタム) の [Password policy mode] (パスワードポリシーモード) を選択します。
-
[Password minimum length] (パスワードの最小長) を選択します。パスワード長要件の制限については、「ユーザープールのリソースクォータ」を参照してください。
-
[Password complexity] (パスワードの複雑さ) 要件を選択してください。
-
管理者が設定したパスワードの有効期間を選択します。
-
[Save changes] (変更の保存) をクリックします。
セルフサービスサインアップを許可する
-
[Amazon Cognito console]
(Amazon Cognito コンソール) に移動し、[User Pools] (ユーザープール) を選択します。 -
リストから既存のユーザープールを選択するか、ユーザープールを作成します。
-
[Sign-up experience] (サインアップエクスペリエンス) タブを選択して、[Self-service sign-up] (セルフサービスサインアップ) を検索します。[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] (ユーザープール) を選択します。 -
リストから既存のユーザープールを選択するか、ユーザープールを作成します。
-
[Messaging] (メッセージング) タブで、[Message templates] (メッセージテンプレート) を検索します。[Verification messages] (検証メッセージ)、[Invitation messages] (招待メッセージ)、または [MFA messages] (MFA メッセージ) を選択して、[Edit] (編集) を選択します。
-
選択したメッセージタイプのメッセージをカスタマイズします。
注記
メッセージをカスタマイズするときは、メッセージテンプレート内のすべての変数を含める必要があります。例えば、変数の場合 {####} は含まれません。ユーザーにはメッセージアクションを完了するのに十分な情報がありません。
詳細については、「メッセージテンプレート」を参照してください。
-
-
検証メッセージ
-
[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] (ユーザープール) を選択します。 -
リストから既存のユーザープールを選択するか、ユーザープールを作成します。
-
[Users] (ユーザー) タブを選択して、[Create use] (ユーザーを作成) をクリックします。
-
パスワード要件、使用可能なアカウント回復方法、およびユーザープールのエイリアス属性に関するガイダンスは、「ユーザープールのサインインとセキュリティ要件」を参照してください。
-
招待メッセージの送信方法を選択します。SMS メッセージ、E メールメッセージ、または両方を選択します。
注記
招待メッセージを送信する前に、ユーザープールの [Messaging] (メッセージング) タブで、Amazon Simple Notification Service および Amazon Simple Email Service で送信者と AWS リージョン を設定します。受信者メッセージとデータレートが適用されます。Amazon SES は、メールメッセージの請求を別途請求し、Amazon SNS は SMS メッセージについて別途請求します。
-
新規ユーザー用に [Username] (ユーザー名) を選択します。
-
[Create a password] (パスワードを作成する) または、Amazon Cognito にユーザーの [Generate a password] (パスワードを生成する) を許可するかどうかを選択してください。一時パスワードは、ユーザープールのパスワードポリシーに準拠する必要があります。
-
[Create] (作成) を選択します。
-
[Users] (ユーザー) タブを選択し、ユーザーの [User name] (ユーザー名) エントリを選択します。[User attributes] (ユーザー属性) および [Group memberships] (グループメンバーシップ) を追加して編集します。ユーザーイベント履歴の確認