Como importar usuários para grupos de usuários com um acionador Lambda de migração de usuário - Amazon Cognito

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á.

Como importar usuários para grupos de usuários com um acionador Lambda de migração de usuário

Com essa abordagem, você pode migrar perfeitamente os usuários do diretório existente para grupos de usuários quando um usuário fizer login pela primeira vez com sua aplicação ou solicitar uma redefinição de senha. Adicione uma função Migrar o acionador do Lambda do usuário ao grupo de usuários para que ele receba metadados sobre os usuários que tentam fazer login e retorne informações de perfil de usuário de uma fonte de identidade externa. Para obter detalhes e um código de exemplo para esse acionador do Lambda, bem como parâmetros de solicitação e resposta, consulte Parâmetros do acionador do Lambda de migrar usuário.

Antes de iniciar a migração de usuários, crie uma função Lambda de migração de usuários em sua Conta da AWS e, em seu grupo de usuários, configure a função do Lambda como acionador de migração de usuários. Adicione uma política de autorização à sua função do Lambda que permita que somente a entidade principal da conta de serviço do Amazon Cognito, cognito-idp.amazonaws.com, invoque a função do Lambda, e apenas no contexto de seu próprio grupo de usuários. Para obter mais informações, consulte Uso de políticas baseadas em recursos para o AWS Lambda (políticas de função do Lambda).

Processo de login

  1. O usuário abre seu aplicativo e faz login com os grupos de usuários do Amazon Cognito API ou por meio da interface de usuário hospedada no Amazon Cognito. Para obter mais informações sobre como facilitar o login com o Amazon APIs Cognito, consulte. Integração da autenticação e autorização do Amazon Cognito com aplicações móveis e da web

  2. Sua aplicação envia o nome de usuário e a senha ao Amazon Cognito. Se seu aplicativo tiver uma interface de usuário de login personalizada que você criou com um AWS SDK, seu aplicativo deverá usar InitiateAuthou AdminInitiateAuthcom o fluxo USER_PASSWORD_AUTH ouADMIN_USER_PASSWORD_AUTH. Quando seu aplicativo usa um desses fluxos, SDK ele envia a senha para o servidor.

    nota

    Antes de adicionar um acionador de migração de usuários, ative o fluxo USER_PASSWORD_AUTH ou ADMIN_USER_PASSWORD_AUTH nas configurações do cliente de aplicação. Você deve usar esses fluxos em vez do fluxo USER_SRP_AUTH padrão. O Amazon Cognito deve enviar uma senha à sua função do Lambda para que ele possa verificar a autenticação do usuário no outro diretório. Um SRP oculta a senha do usuário da sua função Lambda.

  3. O Amazon Cognito verifica se o nome de usuário enviado corresponde a um nome de usuário ou alias no grupo de usuários. Você pode definir o nome de usuário preferido, o endereço de e-mail ou o número de telefone do usuário como um alias no grupo de usuários. Se o usuário não existir, o Amazon Cognito enviará parâmetros, incluindo o nome de usuário e a senha, à função Migrar o acionador do Lambda do usuário.

  4. Sua função Migrar o acionador do Lambda do usuário verifica ou autentica o usuário com seu diretório de usuários existente ou com o banco de dados de usuários. A função retorna atributos do usuário que o Amazon Cognito armazena no perfil do usuário no grupo de usuários. Você pode retornar um parâmetro username somente se o nome de usuário enviado corresponder a um atributo de alias. Se você quiser que os usuários continuem usando a senha que eles já têm, sua função definirá o atributo finalUserStatus como CONFIRMED na resposta do Lambda. Sua aplicação deve retornar todos os parâmetros "response" mostrados em Parâmetros do acionador do Lambda de migrar usuário.

    Importante

    Não registre todo o objeto de evento de solicitação em seu código Lambda de migração de usuários. Esse objeto de evento de solicitação inclui a senha do usuário. Se você não limpar os registros, as senhas aparecerão nos Registros. CloudWatch

  5. O Amazon Cognito cria o perfil de usuário no grupo de usuários e retorna tokens para o aplicativo cliente.

  6. Sua aplicação executa a entrada de token, aceita a autenticação do usuário e prossegue para o conteúdo solicitado.

Depois de migrar seus usuários, use USER_SRP_AUTH para fazer login. O protocolo Secure Remote Password (SRP) não envia a senha pela rede e oferece benefícios de segurança em relação ao USER_PASSWORD_AUTH fluxo que você usa durante a migração.

Em caso de erros durante a migração, incluindo problemas no dispositivo cliente ou na rede, seu aplicativo recebe respostas de erro dos grupos de usuários do Amazon Cognito. API Quando isso acontecer, o Amazon Cognito poderá ou não criar a conta de usuário em seu grupo de usuários. Em seguida, o usuário deverá tentar entrar novamente. Se o login falhar repetidamente, tente redefinir a senha do usuário com o fluxo de esquecimento de senha em sua aplicação.

O fluxo de esquecimento de senha também chama sua função Migrar o acionador do Lambda do usuário com uma fonte de eventos UserMigration_ForgotPassword. Como o usuário não envia uma senha quando solicita uma redefinição de senha, o Amazon Cognito não inclui uma senha no evento que ele envia à sua função do Lambda. Sua função só pode pesquisar o usuário em seu diretório de usuários existente e retornar atributos para adicionar ao perfil do usuário em seu grupo de usuários. Depois que sua função conclui sua invocação e retorna sua resposta ao Amazon Cognito, seu grupo de usuários envia um código de redefinição de senha por e-mail ou. SMS Em seu aplicativo, solicite ao usuário o código de confirmação e uma nova senha e envie essas informações para o Amazon Cognito em uma ConfirmForgotPasswordAPIsolicitação. Também é possível usar as páginas integradas para o fluxo de esquecimento da senha na interface do usuário hospedada do Amazon Cognito.