翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
ユーザー移行の Lambda トリガー
パスワードによるサインイン時にユーザーがユーザープールに存在しない場合、またはユーザーがパスワードを忘れた場合のフローにいる場合に、Amazon Cognito は、このトリガーを呼び出します。Amazon Cognito は、Lambda 関数が正常に値を返した後でユーザーをユーザープールに作成します。ユーザー移行の Lambda トリガーを使用した認証フローの詳細については、「ユーザー移行の Lambda トリガーを使用したユーザーのインポート」を参照してください。
サインイン時、またはパスワードを忘れた場合のフロー中に、ユーザーを既存のユーザーディレクトリから Amazon Cognito ユーザープールに移行するには、この Lambda トリガーを使用します。
ユーザー移行の Lambda トリガーのソース
triggerSource 値 | イベント |
---|---|
UserMigration_Authentication |
サインイン時のユーザーの移行。 |
UserMigration_ForgotPassword |
パスワードを忘れた場合のフロー実行時のユーザー移行 |
ユーザー移行の Lambda トリガーのパラメータ
Amazon Cognito がこの Lambda 関数に渡すリクエストは、以下のパラメータと Amazon Cognito がすべてのリクエストに追加する共通パラメータを組み合わせたものです。
ユーザー移行リクエストパラメータ
- userName
-
ユーザーがサインイン時に入力するユーザー名。
- password
-
ユーザーがサインイン時に入力するパスワード。Amazon Cognito は、パスワードを忘れた場合のフローによって開始されたリクエストでこの値を送信しません。
- validationData
-
ユーザーのサインインリクエストに検証データを含む 1 つ以上のキーバリューペア。このデータを Lambda 関数に渡すには、 InitiateAuth および AdminInitiateAuthAPIアクションで ClientMetadata パラメータを使用できます。
- clientMetadata
-
ユーザー移行のトリガーの Lambda 関数へのカスタム入力として提供できる 1 つ、または複数のキーバリューペア。このデータを Lambda 関数に渡すには、 AdminRespondToAuthChallenge および ForgotPasswordAPIアクションで ClientMetadata パラメータを使用できます。
ユーザー移行レスポンスパラメータ
- userAttributes
-
このフィールドは必須です。
このフィールドには、Amazon Cognito がユーザープール内のユーザープロファイルに保存され、ユーザー属性として使用される、名前と値のペアが 1 つ以上含まれている必要があります。標準およびカスタムの両方のユーザー属性を含めることができます。カスタム属性は、標準属性と区別するために、
custom:
プレフィックスを必要とします。詳細については、「カスタム属性」を参照してください。注記
パスワードを忘れた場合のフローでパスワードをリセットするには、ユーザーに検証済みの E メールアドレスまたは電話番号のどちらかが必要です。Amazon Cognito は、ユーザー属性にある E メールアドレスまたは電話番号宛てに、パスワードのリセットコードが含まれるメッセージを送信します。
属性 要件 ユーザープールの作成時に必須とマークした属性 移行時に必須属性が見当たらない場合は、Amazon Cognito はデフォルト値を使用します。 username
サインイン用のユーザー名に加えてエイリアス属性を使用してユーザープールを設定しており、ユーザーがユーザー名として有効なエイリアスを入力している場合は、必須です。エイリアスの値は、E メールアドレス、優先ユーザー名、電話番号です。
リクエストとユーザープールがエイリアスの要件を満たしている場合、関数からのレスポンスは、受け取った
username
パラメータをエイリアス属性に割り当てる必要があります。また、レスポンスはusername
属性に自身の値を割り当てる必要があります。ユーザープールが、受け取ったusername
をエイリアスにマッピングするのに必要な条件を満たしていない場合、レスポンスのusername
パラメータはリクエストと完全に一致するか、省略する必要があります。注記
username
はユーザープールで一意である必要があります。 - finalUserStatus
-
このパラメータを
CONFIRMED
に設定すると、ユーザーが以前のパスワードでサインインできるように自動確認することができます。ユーザーをCONFIRMED
に設定した場合は、サインインする前に追加のアクション操作を実行する必要はありません。この属性をCONFIRMED
に設定しない場合は、RESET_REQUIRED
に設定されます。RESET_REQUIRED
のfinalUserStatus
は、サインイン時の移行後、ユーザーはすぐにパスワードを変更する必要があり、クライアントアプリは認証フロー中にPasswordResetRequiredException
を処理する必要があることを意味します。注記
Amazon Cognito は、Lambda トリガーを使用して移行中にユーザープールに設定したパスワード強度ポリシーを強制しません。パスワードが設定したパスワードポリシーを満たさない場合でも、Amazon Cognito は引き続きユーザーを移行できるように、パスワードを受け入れます。パスワード強度ポリシーを施行してポリシーを満たさないパスワードを拒否するには、コード内のパスワード強度を検証して、次に、パスワードがポリシーを満たさない場合は、 finalUserStatus を に設定します
RESET_REQUIRED
。 - messageAction
-
このパラメータを
SUPPRESS
に設定すると、通常、Amazon Cognito は新規ユーザーに送信するウェルカムメッセージの送信を拒否することができます。関数がこのパラメータを返さない場合、Amazon Cognito はウェルカムメッセージを送信します。 - desiredDeliveryMediums
-
このパラメータを に設定する
EMAIL
と、ウェルカムメッセージを E メールで送信したり、 でウェルカムメッセージを送信SMS
したりできますSMS。関数がこのパラメータを返さない場合、Amazon Cognito は によってウェルカムメッセージを送信しますSMS。 - forceAliasCreation
-
このパラメータを に設定
TRUE
し、 UserAttributes パラメータの電話番号または E メールアドレスが別のユーザーのエイリアスとして既に存在する場合、API呼び出しはエイリアスを以前のユーザーから新しく作成されたユーザーに移行します。以前のユーザーはそのエイリアスを使用してログインできなくなります。このパラメータを、
FALSE
に設定し、エイリアスが存在する場合、Amazon Cognito はユーザーを移行せず、クライアントアプリにエラーを返します。このパラメータを返さない場合、Amazon Cognito はその値が「false」であると見なします。
- 有効にするSMSMFA
-
このパラメータを に設定すると
true
、移行したユーザーがSMSテキストメッセージの多要素認証 (MFA) を完了してサインインする必要があります。ユーザープールMFAが有効になっている必要があります。リクエストパラメータのユーザー属性には、電話番号を含める必要があります。電話番号がないと、そのユーザーの移行は失敗します。
例: 既存のパスワードを使用したユーザーの移行
この例の Lambda 関数は、既存のパスワードを使用してユーザーを移行し、Amazon Cognito からのウェルカムメッセージを抑制します。