As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.
Acionador do Lambda para definir desafio de autenticação
O gatilho de desafio define auth é uma função do Lambda que mantém a sequência de desafios em um fluxo de autenticação personalizado. Ele declara o sucesso ou o fracasso da sequência de desafios e define o próximo desafio se a sequência ainda não estiver completa.
 
         
         
            
         
         
            
         
         
    - Definir o desafio de autenticação
- 
                O Amazon Cognito invoca esse acionador para iniciar o fluxo de autenticação personalizado. 
A solicitação desse acionador do Lambda contém session. O parâmetro session é uma matriz que contém todos os desafios apresentados ao usuário no processo de autenticação atual. A solicitação também inclui o resultado correspondente. A matriz session armazena detalhes do desafio (ChallengeResult) em ordem cronológica. O desafio session[0] representa o primeiro que o usuário recebe.
Tópicos
Parâmetros do acionador do Lambda para definir o desafio de autenticação
A solicitação que o Amazon Cognito transmite para essa função do Lambda é uma combinação dos parâmetros abaixo e dos parâmetros comuns que o Amazon Cognito adiciona a todas as solicitações.
Parâmetros de solicitação para definir o desafio de autenticação
Quando o Amazon Cognito invoca sua função do Lambda, ele fornece os seguintes parâmetros:
- userAttributes
- 
                        Um ou mais pares de nome-valor que representam atributos de usuário. 
- userNotFound
- 
                        Um booleano que é preenchido pelo Amazon Cognito quando PreventUserExistenceErrorsé definido comoENABLEDpara o cliente de grupo de usuários. Um valor detruesignifica que o ID do usuário (nome de usuário, endereço de e-mail e outros detalhes) não correspondeu a nenhum usuário existente. QuandoPreventUserExistenceErrorsé definido comoENABLED, o serviço não informa a aplicação dos usuários inexistentes. Recomendamos que suas funções do Lambda mantenham a mesma experiência do usuário e contabilizem a latência. Dessa forma, o autor da chamada não consegue detectar comportamentos diferentes quando o usuário existe ou não existe.
- sessão
- 
                        Uma matriz de elementos ChallengeResult. Cada regra contém os seguintes elementos:- challengeName
- 
                                    Um dos seguintes tipos de desafio: CUSTOM_CHALLENGE,SRP_A,PASSWORD_VERIFIER,SMS_MFA,EMAIL_OTP,SOFTWARE_TOKEN_MFA,DEVICE_SRP_AUTH,DEVICE_PASSWORD_VERIFIERouADMIN_NO_SRP_AUTH.Quando sua função define auth challenge emite um desafio PASSWORD_VERIFIERpara um usuário que configurou a autenticação multifator, o Amazon Cognito prossegue com um desafioSMS_MFA,EMAIL_OTPouSOFTWARE_TOKEN_MFA. Essas são as instruções para um código de autenticação multifator. Em sua função, inclua o tratamento de eventos de entrada de desafiosSMS_MFA,EMAIL_OTPeSOFTWARE_TOKEN_MFA. Você não precisa invocar os desafios de MFA usando sua função de desafio define auth.ImportanteQuando sua função estiver determinando se um usuário fez a autenticação com êxito e você precisar emitir tokens para ele, sempre confira challengeNameem sua função “define auth challenge” e garantir que corresponda ao valor esperado.
- challengeResult
- 
                                    Defina como truese o usuário tiver concluído o desafio com êxito; do contrário, defina-o comofalse.
- challengeMetadata
- 
                                    Seu nome para o desafio personalizado. Usado somente se challengeNameforCUSTOM_CHALLENGE.
 
- clientMetadata
- 
                        Um ou mais pares de chave/valor que você pode fornecer como entrada personalizada para a função do Lambda especificada para o acionador definir desafio de autenticação. Para passar esses dados para sua função Lambda, você pode usar o ClientMetadataparâmetro nas operações AdminRespondToAuthChallengee da RespondToAuthChallengeAPI. A solicitação que invoca a função define auth challenge não inclui dados transmitidos no ClientMetadata parâmetro AdminInitiateAuthe InitiateAuthoperações de API.
Parâmetros de resposta para definir o desafio de autenticação
Na resposta, você pode retornar o próximo estágio do processo de autenticação.
- challengeName
- 
                        Uma string que contém o nome do próximo desafio. Se você deseja apresentar um novo desafio ao seu usuário, especifique o nome do desafio aqui. 
- issueTokens
- 
                        Se você determinar que o usuário concluiu os desafios de autenticação de forma adequada; defina-o como true. Se o usuário não cumprir os desafios devidamente, defina comofalse.
- failAuthentication
- 
                        Se quiser encerrar o processo de autenticação atual, defina-o como true. Para continuar o processo de autenticação atual, defina-o comofalse.
Exemplo de definição do desafio de autenticação
Este exemplo definirá uma série de desafios de autenticação e emitirá tokens somente se o usuário concluir todos os desafios com êxito. Quando os usuários concluem a autenticação SRP com os PASSWORD_VERIFIER desafios SRP_A e, essa função passa a eles um CUSTOM_CHALLENGE que invoca o gatilho do desafio create auth. Em combinação com nosso exemplo de desafio de criação de autenticação, essa sequência oferece um desafio CAPTCHA para o desafio três e uma pergunta de segurança para o desafio quatro.
Depois que o usuário resolve o CAPTCHA e responde à pergunta de segurança, essa função confirma que seu grupo de usuários pode emitir tokens. A autenticação SRP não é necessária; você também pode definir o CAPTCHA e a pergunta de segurança como desafios um e dois. No caso de sua função de definição de desafio de autenticação não declarar desafios de SRP, o sucesso de seus usuários é determinado inteiramente pelas respostas deles às suas solicitações personalizadas.