認証チャレンジレスポンスの検証の Lambda トリガー - Amazon Cognito

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

認証チャレンジレスポンスの検証の Lambda トリガー

認証検証チャレンジトリガーは、ユーザーが提供したレスポンスを既知のレスポンスと比較する Lambda 関数です。この関数は、ユーザーがチャレンジに正しく応答したかどうかをユーザープールに伝えます。認証チャレンジの検証トリガーが answerCorrectの で応答するとtrue、認証シーケンスは続行できます。

チャレンジの Lambda トリガー
認証チャレンジレスポンスの検証

Amazon Cognito は、このトリガーが呼び出して、カスタム認証チャレンジに対するユーザーからのレスポンスが有効であるかどうかを検証します。これはユーザープールのカスタム認証フローの一環です。

このトリガーのリクエストには privateChallengeParameters および challengeAnswer パラメータが含まれます。privateChallengeParameters 値は、認証チャレンジの作成の Lambda トリガーによって返され、ユーザーからの期待されるレスポンスが含まれます。challengeAnswer パラメータには、チャレンジに対するユーザーのレスポンスが含まれます。

レスポンスには、answerCorrect 属性が含まれます。ユーザーがチャレンジを正常に完了すると、Amazon Cognito は属性値を true に設定します。ユーザーがチャレンジを正常に完了しなかった場合、Amazon Cognito は値を false に設定します。

チャレンジループは、すべてのチャレンジが回答されるまで繰り返します。

認証チャレンジの検証の Lambda トリガーのパラメータ

Amazon Cognito がこの Lambda 関数に渡すリクエストは、以下のパラメータと Amazon Cognito がすべてのリクエストに追加する共通パラメータを組み合わせたものです。

JSON
{ "request": { "userAttributes": { "string": "string", . . . }, "privateChallengeParameters": { "string": "string", . . . }, "challengeAnswer": "string", "clientMetadata": { "string": "string", . . . }, "userNotFound": boolean }, "response": { "answerCorrect": boolean } }

認証チャレンジの検証のリクエストパラメータ

userAttributes

このパラメータには、ユーザー属性を表す 1 つ以上の名前-値ペアが含まれます。

userNotFound

Amazon Cognito がユーザープールクライアントの PreventUserExistenceErrorsENABLED に設定すると、Amazon Cognito はこのブール値を入力します。

privateChallengeParameters

このパラメータは、認証チャレンジの作成トリガーから取得されます。ユーザーがチャレンジに合格したかどうかを判断するために、Amazon Cognito はパラメータをユーザーの と比較しますchallengeAnswer

このパラメータには、チャレンジに対するユーザーのレスポンスを検証するために必要な情報のすべてが含まれます。その情報には、Amazon Cognito がユーザーに提示する質問 (publicChallengeParameters) と、その質問に対する有効な回答 (privateChallengeParameters) が含まれます。認証チャレンジレスポンスの検証の Lambda トリガーのみがこのパラメータを使用します。

challengeAnswer

このパラメータ値は、チャレンジに対するユーザーの回答です。

clientMetadata

このパラメータには、認証チャレンジの検証のトリガーの Lambda 関数へのカスタム入力として提供できる 1 つまたは複数のキーバリューペアが含まれています。このデータを Lambda 関数に渡すには、 AdminRespondToAuthChallenge および RespondToAuthChallengeAPIオペレーションで ClientMetadata パラメータを使用します。Amazon Cognito には、認証チャレンジの検証関数に渡されるリクエストの AdminInitiateAuthおよび InitiateAuthAPIオペレーションの ClientMetadata パラメータからのデータは含まれません。

認証チャレンジの検証のレスポンスパラメータ

answerCorrect

ユーザーがチャレンジを正常に完了した場合、Amazon Cognito はこのパラメータを true に設定します。ユーザーがチャレンジを正常に完了しなかった場合、Amazon Cognito はパラメータを false に設定します。

認証チャレンジレスポンスの確認の例

この例では、チャレンジに対するユーザーのレスポンスが期待されるレスポンスに一致するかどうかを Lambda 関数がチェックします。ユーザーのレスポンスが期待されるレスポンスと一致した場合、Amazon Cognito は answerCorrect パラメータを true に設定します。

Node.js
const handler = async (event) => { if ( event.request.privateChallengeParameters.answer == event.request.challengeAnswer ) { event.response.answerCorrect = true; } else { event.response.answerCorrect = false; } return event; }; export { handler };