認証チャレンジレスポンスの検証の Lambda トリガー
認証チャレンジの検証トリガーは、ユーザーが提供したレスポンスを既知のレスポンスと比較する Lambda 関数です。この関数は、ユーザーがチャレンジに正しく応答したかどうかをユーザープールに伝えます。認証チャレンジの検証トリガーが true の answerCorrect で応答すると、認証シーケンスは続行できます。
- 認証チャレンジレスポンスの検証
-
Amazon Cognito は、このトリガーが呼び出して、カスタム認証チャレンジに対するユーザーからのレスポンスが有効であるかどうかを検証します。これはユーザープールのカスタム認証フローの一環です。
このトリガーのリクエストには privateChallengeParameters および challengeAnswer パラメータが含まれます。privateChallengeParameters 値は、認証チャレンジの作成の Lambda トリガーによって返され、ユーザーからの期待されるレスポンスが含まれます。challengeAnswer パラメータには、チャレンジに対するユーザーのレスポンスが含まれます。
レスポンスには、answerCorrect 属性が含まれます。ユーザーがチャレンジを正常に完了すると、Amazon Cognito は属性値を true に設定します。ユーザーがチャレンジを正常に完了しなかった場合、Amazon Cognito は値を false に設定します。
チャレンジループは、すべてのチャレンジが回答されるまで繰り返します。
認証チャレンジの検証の Lambda トリガーのパラメータ
Amazon Cognito がこの Lambda 関数に渡すリクエストは、以下のパラメータと Amazon Cognito がすべてのリクエストに追加する共通パラメータを組み合わせたものです。
認証チャレンジの検証のリクエストパラメータ
- userAttributes
-
このパラメータには、ユーザー属性を表す 1 つ以上の名前-値ペアが含まれます。
- userNotFound
-
Amazon Cognito がユーザープールクライアントの
PreventUserExistenceErrorsをENABLEDに設定すると、Amazon Cognito はこのブール値を入力します。 - privateChallengeParameters
-
このパラメータは、認証チャレンジの作成トリガーから取得されます。ユーザーがチャレンジに合格したかどうかを判断するために、Amazon Cognito はパラメータをユーザーの challengeAnswer パラメータと比較します。
このパラメータには、チャレンジに対するユーザーのレスポンスを検証するために必要な情報のすべてが含まれます。その情報には、Amazon Cognito がユーザーに提示する質問 (
publicChallengeParameters) と、その質問に対する有効な回答 (privateChallengeParameters) が含まれます。認証チャレンジレスポンスの検証の Lambda トリガーのみがこのパラメータを使用します。 - challengeAnswer
-
このパラメータ値は、チャレンジに対するユーザーの回答です。
- clientMetadata
-
このパラメータには、認証チャレンジの検証のトリガーの Lambda 関数へのカスタム入力として提供できる 1 つまたは複数のキーバリューペアが含まれています。このデータを Lambda 関数に渡すには、AdminRespondToAuthChallenge および RespondToAuthChallenge API オペレーションで ClientMetadata パラメータを使用します。Amazon Cognito は、認証チャレンジの検証関数に渡すリクエストの AdminInitiateAuth および InitiateAuth API オペレーションの ClientMetadata パラメータからのデータを含めません。
認証チャレンジの検証のレスポンスパラメータ
- answerCorrect
-
ユーザーがチャレンジを正常に完了した場合、Amazon Cognito はこのパラメータを
trueに設定します。ユーザーがチャレンジを正常に完了しなかった場合、Amazon Cognito はパラメータをfalseに設定します。
認証チャレンジレスポンスの確認の例
この認証チャレンジの確認関数は、チャレンジに対するユーザーのレスポンスが、想定されたレスポンスと一致するかどうかを確認します。ユーザーの回答はアプリケーションからの入力によって定義され、推奨される回答は 認証チャレンジの作成トリガーレスポンスからのレスポンスの privateChallengeParameters.answer によって定義されます。正しい回答と与えられた回答は、どちらもこの関数への入力イベントの一部となります。
この例では、ユーザーのレスポンスが想定されたレスポンスと一致した場合、Amazon Cognito は answerCorrect パラメータを true に設定します。