

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

# 인증 챌린지 확인 응답 Lambda 트리거
<a name="user-pool-lambda-verify-auth-challenge-response"></a>

확인 인증 챌린지 트리거는 사용자가 제공한 응답을 알려진 응답과 비교하는 Lambda 함수입니다. 이 함수는 사용자가 챌린지에 올바르게 응답했는지 여부를 사용자 풀에 알려줍니다. 인증 챌린지 확인 트리거가 `true`의 `answerCorrect`로 응답하면 인증 시퀀스를 계속할 수 있습니다.

![\[문제 Lambda 트리거\]](http://docs.aws.amazon.com/ko_kr/cognito/latest/developerguide/images/lambda-challenges3.png)


**인증 문제 응답 확인**  
Amazon Cognito는 이 트리거를 호출하여 사용자 지정 인증 문제에 대한 사용자의 응답이 유효한지 여부를 확인합니다. 이것은 사용자 풀 [사용자 지정 인증 흐름](https://docs.aws.amazon.com/cognito/latest/developerguide/amazon-cognito-user-pools-authentication-flow.html#amazon-cognito-user-pools-custom-authentication-flow)에 속합니다.

이 트리거에 대한 요청에는 `privateChallengeParameters` 및 `challengeAnswer` 파라미터가 포함됩니다. 인증 문제 생성 Lambda 트리거는 `privateChallengeParameters` 값을 반환하고 사용자의 예상 응답을 포함합니다. `challengeAnswer` 파라미터에는 챌린지에 대한 사용자의 응답이 포함됩니다.

응답에는 `answerCorrect` 속성이 포함됩니다. 사용자가 문제를 성공적으로 완료한 경우 Amazon Cognito는 속성 값을 `true`로 설정합니다. 사용자가 문제를 성공적으로 완료하지 못한 경우 Amazon Cognito는 속성 값을 `false`로 설정합니다.

사용자가 모든 문제에 응답할 때까지 문제 루프가 반복됩니다.

**Topics**
+ [인증 챌린지 확인 Lambda 트리거 파라미터](#cognito-user-pools-lambda-trigger-syntax-verify-auth-challenge)
+ [인증 챌린지 확인 응답 예제](#aws-lambda-triggers-verify-auth-challenge-response-example)

## 인증 챌린지 확인 Lambda 트리거 파라미터
<a name="cognito-user-pools-lambda-trigger-syntax-verify-auth-challenge"></a>

Amazon Cognito가 이 Lambda 함수에 전달하는 요청은 아래 파라미터와 Amazon Cognito가 모든 요청에 추가하는 [공통 파라미터](https://docs.aws.amazon.com/cognito/latest/developerguide/cognito-user-pools-working-with-lambda-triggers.html#cognito-user-pools-lambda-trigger-syntax-shared)의 조합입니다.

------
#### [ JSON ]

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

------

### 인증 챌린지 확인 요청 파라미터
<a name="cognito-user-pools-lambda-trigger-syntax-verify-auth-challenge-request"></a>

**userAttributes**  
이 파라미터에는 사용자 속성을 나타내는 하나 이상의 이름-값 페어가 포함됩니다.

**userNotFound**  
Amazon Cognito에서 사용자 풀 클라이언트에 대해 `PreventUserExistenceErrors`를 `ENABLED`로 설정한 경우 Amazon Cognito는 이 부울을 채웁니다.

**privateChallengeParameters**  
이 파라미터는 인증 문제 생성 트리거에서 가져옵니다. 사용자가 문제를 통과했는지 여부를 확인하려면 Amazon Cognito에서 이 파라미터를 사용자의 **challengeAnswer**과 비교합니다.  
이 파라미터는 사용자의 문제에 대한 응답을 검증하는 데 필요한 모든 정보를 포함합니다. 이 정보에는 Amazon Cognito가 사용자에게 제시하는 질문(`publicChallengeParameters`) 및 질문에 대한 유효한 대답(`privateChallengeParameters`)이 포함됩니다. 인증 문제 응답 확인 Lambda 트리거만 이 파라미터를 사용합니다.

**challengeAnswer**  
이 파라미터 값은 사용자의 문제에 대한 응답에 있는 대답입니다.

**clientMetadata**  
이 파라미터는 인증 문제 확인 트리거에 대한 Lambda 함수에 사용자 지정 입력으로 제공될 수 있는 하나 이상의 키-값 페어를 포함합니다. 이 데이터를 Lambda 함수에 전달하려면 [AdminRespondToAuthChallenge](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_AdminRespondToAuthChallenge.html) 및 [RespondToAuthChallenge](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_RespondToAuthChallenge.html) API 작업에서 ClientMetadata 파라미터를 사용합니다. Amazon Cognito는 승인 문제 확인 함수에 전달하는 요청에 있는 [AdminInitiateAuth](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_AdminInitiateAuth.html) 및 [InitiateAuth](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_InitiateAuth.html) API 작업의 ClientMetadata 파라미터에서 전달된 데이터는 포함하지 않습니다.

### 인증 챌린지 확인 응답 파라미터
<a name="cognito-user-pools-lambda-trigger-syntax-verify-auth-challenge-response"></a>

**answerCorrect**  
사용자가 문제를 성공적으로 완료한 경우 Amazon Cognito는 이 파라미터를 `true`로 설정합니다. 사용자가 문제를 성공적으로 완료하지 못한 경우 Amazon Cognito는 이 파라미터를 `false`로 설정합니다.

## 인증 챌린지 확인 응답 예제
<a name="aws-lambda-triggers-verify-auth-challenge-response-example"></a>

이 인증 확인 문제 기능은 사용자의 문제 응답이 예상 응답과 일치하는지 확인합니다. 사용자의 답변은 애플리케이션의 입력에 따라 정의되고, 선호하는 답변은 `privateChallengeParameters.answer`가 [인증 문제 트리거 응답 생성](user-pool-lambda-create-auth-challenge.md#aws-lambda-triggers-create-auth-challenge-example)의 응답에서 정의합니다. 정답과 주어진 답변 모두이 함수에 대한 입력 이벤트의 일부입니다.

이 예에서, 사용자의 응답과 예상 응답이 일치하는 경우 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 };
```

------