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.Importante
Quando 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.