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

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


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

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

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

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

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

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

これらは、Amazon Cognito が共通パラメータのイベント情報と共にこの Lambda 関数に渡すパラメータです。

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 および RespondToAuthChallenge API オペレーションで ClientMetadata パラメータを使用します。Amazon Cognito は、認証チャレンジの検証関数に渡すリクエストの AdminInitiateAuth および InitiateAuth API オペレーションの ClientMetadata パラメータからのデータを含めません。

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

answerCorrect

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

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

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

Node.js
exports.handler = (event, context, callback) => { if (event.request.privateChallengeParameters.answer == event.request.challengeAnswer) { event.response.answerCorrect = true; } else { event.response.answerCorrect = false; } // Return to Amazon Cognito callback(null, event); }