Acionador do Lambda de pré-autenticação
O Amazon Cognito invoca esse acionador quando um usuário tenta fazer login, de forma que você possa criar uma validação personalizada que realize ações preparatórias. Por exemplo, você pode negar a solicitação de autenticação ou registrar os dados da sessão em um sistema externo.
nota
Esse acionador do Lambda não é ativado quando um usuário não existe ou já tem uma sessão existente no grupo de usuários. Se a configuração PreventUserExistenceErrors
de um cliente de aplicação do grupo de usuários estiver definida como ENABLED
, o acionador do Lambda será ativado.
Tópicos
Visão geral do fluxo de autenticação
A solicitação inclui dados de validação do cliente dos valores ClientMetadata
que a aplicação transmite para as operações de API InitiateAuth
e AdminInitiateAuth
do grupo de usuários.
Para ter mais informações, consulte Fluxo de autenticação de grupo de usuários.
Parâmetros do acionador do Lambda de pré-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 de pré-autenticação
- userAttributes
-
Um ou mais pares de nome-valor que representam atributos de usuário.
- userNotFound
-
Quando você define
PreventUserExistenceErrors
comoENABLED
para o cliente do grupo de usuários, o Amazon Cognito preenche esse booleano. - validationData
-
Um ou mais pares de chave-valor que contêm os dados de validação na solicitação de login do usuário. Para transmitir esses dados para a função do Lambda, use o parâmetro ClientMetadata nas ações de API InitiateAuth e AdminInitiateAuth.
Parâmetros de resposta de pré-autenticação
O Amazon Cognito não espera nenhuma outra informação de retorno na resposta. Sua função pode retornar um erro para rejeitar a tentativa de login ou usar operações de API para consultar e modificar seus recursos.
Exemplo de pré-autenticação
Essa função de exemplo impede que usuários façam login em seu grupo de usuários com um cliente de aplicação específico. Como a função do Lambda de pré-autenticação não invoca quando o usuário já tem uma sessão, essa função só impede novas sessões com o ID do cliente da aplicação que você deseja bloquear.
O Amazon Cognito transmite informações de evento para a função do Lambda. A função retorna o mesmo objeto de evento para o Amazon Cognito, com as alterações na resposta. No console do Lambda, você pode configurar um evento de teste com dados relevantes para o acionador do Lambda. A seguir, é mostrado um evento de teste para esse exemplo de código: