사용자 정의 인증 챌린지 Lambda 트리거 - Amazon Cognito

사용자 정의 인증 챌린지 Lambda 트리거

Amazon Cognito 사용자 풀에 대한 인증 흐름을 구축할 때 기본 제공 흐름 이상으로 인증 모델을 확장하고 싶을 수 있습니다. 사용자 지정 챌린지 트리거의 일반적인 사용 사례 중 하나는 사용자 이름, 암호 및 다중 인증(MFA) 이외의 추가 보안 검사를 구현하는 것입니다. 사용자 지정 챌린지는 Lambda 지원 프로그래밍 언어로 생성할 수 있는 모든 질문과 응답입니다. 예를 들어 인증이 허용되기 전에 사용자가 CAPTCHA를 해결하거나 보안 질문에 답하도록 요구할 수 있습니다. 또 다른 잠재적 요구 사항은 특수 인증 요소 또는 디바이스와 통합하는 것입니다. 또는 하드웨어 보안 키 또는 생체 인식 장치로 사용자를 인증하는 소프트웨어를 이미 개발했을 수도 있습니다. 사용자 지정 챌린지에 대한 인증 성공의 정의는 Lambda 함수가 올바른 것으로 받아들이는 답변(예: 고정 문자열 또는 외부 API의 만족스러운 응답)입니다.

사용자 지정 챌린지로 인증을 시작하고 인증 프로세스를 완전히 제어하거나 애플리케이션이 사용자 지정 챌린지를 수신하기 전에 사용자 이름 암호 인증을 수행할 수 있습니다.

사용자 지정 인증 챌린지 Lambda 트리거:

정의

챌린지 시퀀스를 시작합니다. 새 챌린지를 시작할지, 인증을 완료로 표시할지 또는 인증 시도를 중단할지 결정합니다.

생성

사용자가 답변해야 하는 질문을 애플리케이션에 발급합니다. 이 함수는 애플리케이션이 사용자에게 표시해야 하는 보안 질문 또는 CAPTCHA에 대한 링크를 제공할 수 있습니다.

확인

예상 응답을 알고 이를 애플리케이션이 챌린지 응답에서 제공하는 응답과 비교합니다. 함수는 CAPTCHA 서비스의 API를 호출하여 사용자가 시도한 솔루션의 예상 결과를 검색할 수 있습니다.

이 세 가지 Lambda 함수는 서로 연결되어 사용자의 제어 범위 내에 있고 자체 설계에 완전히 속하는 인증 메커니즘을 제공합니다. 사용자 지정 인증에는 클라이언트 및 Lambda 함수에 애플리케이션 로직이 필요하므로 호스팅된 UI 내에서 사용자 지정 인증을 처리할 수 없습니다. 이 인증 시스템에는 추가 개발자 노력이 필요합니다. 애플리케이션은 사용자 풀 API로 인증 흐름을 수행하고 사용자 지정 인증 챌린지의 중앙에서 질문을 렌더링하는 사용자 지정 UI로 결과 챌린지를 처리해야 합니다.

문제 Lambda 트리거

사용자 지정 인증을 구현하는 방법에 대한 자세한 내용은 사용자 지정 인증 흐름 및 챌린지 섹션을 참조하세요.

API 작업 InitiateAuth 또는 AdminInitiateAuthRespondToAuthChallenge 또는 AdminRespondToAuthChallenge 간의 인증. 이 흐름에서 인증이 실패하거나 사용자에게 토큰이 발행될 때까지 사용자는 연속 문제에 응답하여 인증합니다. 챌린지 응답은 새로운 챌린지일 수 있습니다. 이 경우 애플리케이션은 새로운 챌린지에 필요한 만큼 응답합니다. 인증 챌린지 정의 함수가 지금까지의 결과를 분석하여 모든 챌린지에 응답했다고 판단하고 IssueTokens를 반환하면 인증이 성공합니다.