Conceitos básicos da AWS
Crie uma aplicação Web sem servidor
com o AWS Lambda, Amazon API Gateway, AWS Amplify, Amazon DynamoDB e Amazon Cognito
Módulo 2: Gerenciar usuários
Você vai criar um grupo de usuários do Amazon Cognito para gerenciar as contas deles.
Visão geral
Neste módulo, você vai criar um grupo de usuários do Amazon Cognito para gerenciar as contas deles. Você vai implantar páginas que permitem que os clientes se registrem como novos usuários, verifiquem o endereço de e-mail e efetuem login no site.
Visão geral da arquitetura
Quando os usuários acessarem seu site, primeiro vão se registrar como novos usuários. Neste workshop, vamos pedir que eles forneçam somente um endereço de e-mail e uma senha para se registrar. No entanto, você pode configurar o Amazon Cognito para exigir outros atributos em seus próprios aplicativos.
Depois que os usuários se registrarem, o Amazon Cognito vai enviar um e-mail de confirmação com um código de verificação para o endereço que eles forneceram. Para confirmar a conta, os usuários devem voltar ao seu site e inserir o e-mail e o código de verificação que receberam. Você também pode confirmar as contas dos usuários usando o console do Amazon Cognito com endereços de e-mail falsos para testar.
Depois de confirmar a conta (pelo processo de verificação de e-mail ou fazendo a confirmação manual no console), eles vão poder fazer login. Para isso, eles devem usar o nome de usuário (ou e-mail) e a senha. Uma função JavaScript se comunica com o Amazon Cognito, faz a autenticação usando o Secure Remote Password Protocol (SRP) e recebe de volta um conjunto de JSON Web Tokens (JWT). Os JWTs contêm alegações da identidade do usuário e serão usados no próximo módulo para fazer a autenticação usando, como referência, a API RESTful que você criou com o Amazon API Gateway.
Tempo para a conclusão
30 minutos
Serviços usados
Modelo do CloudFormation
Se quiser ir para o próximo módulo, você pode iniciar um destes modelos do AWS CloudFormation na mesma região utilizada no Módulo 1.
Região | Modelo do CloudFormation |
---|---|
Leste dos EUA (Norte da Virgínia) | Executar pilha > |
Leste dos EUA (Ohio) | Executar pilha > |
Oeste dos EUA (Oregon) | Executar pilha > |
UE (Frankfurt) | Executar pilha > |
UE (Irlanda) | Executar pilha > |
UE (Londres) | Executar pilha > |
Ásia-Pacífico (Tóquio) | Executar pilha > |
Ásia-Pacífico (Seul) | Executar pilha > |
Ásia-Pacífico (Sydney) | Executar pilha > |
Ásia-Pacífico (Mumbai) | Executar pilha > |
Implementação
-
Criar um grupo de usuários do Amazon Cognito e integrar uma aplicação ao seu grupo de usuários
O Amazon Cognito fornece dois mecanismos diferentes para autenticar usuários. Você pode usar grupos de usuários do Cognito para adicionar as funcionalidades de registro e login ao seu aplicativo ou usar grupos de identidade dele para autenticar usuários por meio de mídias sociais, como Facebook, Twitter ou Amazon, com soluções de identidade SAML. Você pode usar ainda seu próprio sistema de verificação. Neste módulo você vai usar um grupo de usuários como back-end para o registro e as páginas de login fornecidas.
- No console do Amazon Cognito, escolha Criar grupo de usuários.
- Na página Configurar experiência de login, na seção Opções de login do grupo de usuários do Cognito, selecione Nome do usuário. Mantenha os padrões para as outras configurações, como Tipos de provedor, e não faça nenhuma seleção de Requisitos de nome de usuário. Escolha Próxima.
- Na página Configurar requisitos de segurança, mantenha o Modo de política de senha como Padrões do Cognito. Você pode optar por configurar a autenticação multifator (MFA) ou escolher Sem MFA e manter outras configurações como padrão. Escolha Próxima.
- Na página Definir experiência de cadastro, mantenha tudo como padrão. Escolha Próxima.
- Na página Configurar entrega de mensagens, para Provedor de e-mail, confirme se Enviar e-mail com o Amazon SES - Recomendado está selecionado. No campo Endereço de e-mail FROM, selecione um endereço de e-mail que você tenha verificado com o Amazon SES, seguindo as instruções em Verifying an email address identity no Guia do desenvolvedor do Amazon Simple Email Service.
Observação: se você não vê o endereço de e-mail verificado sendo preenchido na lista suspensa, certifique-se de ter criado um endereço de e-mail verificado na mesma região selecionada no início do tutorial. - Na página Integrar sua aplicação, nomeie seu grupo de usuários: WildRydes. Em Cliente de aplicação inicial, nomeie o cliente da aplicação: WildRydesWebApp e mantenha as outras configurações como padrão.
- Na página Revisar e criar, escolha Criar grupo de usuários.
- Na página Grupos de usuários, selecione o Nome do grupo de usuários para ver informações detalhadas sobre o grupo de usuários que você criou. Copie o ID do grupo de usuários na seção Visão geral do grupo de usuários e salve-o em um local seguro em sua máquina local.
- Selecione a guia Integração da aplicação, copie e salve o ID do cliente na seção Análise e clientes de aplicação do seu grupo de usuários recém-criado.
-
Atualizar o arquivo de configuração do site
O arquivo js/config.js contém as configurações do ID do grupo de usuários, do cliente da aplicação e da região. Atualize este arquivo com as configurações do grupo de usuários e da aplicação que você criou nas etapas anteriores e faça upload do arquivo de volta ao bucket.
- Em sua máquina local, abra o arquivo wild-ryde-site/js/config.js em um editor de texto de sua preferência.
- Atualize a seção cognito do arquivo com os valores corretos para o ID do grupo de usuários e o ID do cliente de aplicação que você salvou nas etapas 8 e 9 da seção anterior. O UserPoolID é o ID do grupo de usuários da seção Visão geral do grupo de usuários, e o UserPoolClientID é o ID do cliente de aplicação da seção Integração da aplicação > Análise e clientes de aplicação do Amazon Cognito.
- O valor da região deve ser o código da região da AWS em que você criou o grupo de usuários. Por exemplo, us-east-1 para a região do Norte da Virgínia ou us-west-2 para a região de Oregon. Caso não tenha certeza do código a ser usado, veja o valor de Pool ARN na Visão geral do grupo de usuários. O código da região é a parte do ARN imediatamente após arn:aws:cognito-idp:.
O arquivo config.js atualizado deve ter a seguinte aparência: Os valores reais do seu arquivo serão diferentes:
window._config = { cognito: { userPoolId: 'us-west-2_uXboG5pAb', // e.g. us-east-2_uXboG5pAb userPoolClientId: '25ddkmj4v6hfsfvruhpfi7n4hv', // e.g. 25ddkmj4v6hfsfvruhpfi7n4hv region: 'us-west-2' // e.g. us-east-2 }, api: { invokeUrl: '' // e.g. https://rc7nyt4tql.execute-api.us-west-2.amazonaws.com/prod', } };
4. Salve o arquivo modificado.
5. Na janela do terminal, adicione, confirme e envie o arquivo para o repositório Git para que ele seja implantado automaticamente no console do Amplify.
O bloco de código a seguir é um exemplo do que você verá na janela do seu terminal:
$ git add . $ git commit -m "new_config" $ git push
-
Validar sua implementação
- Em uma janela do Finder ou do Explorador de Arquivos do Windows, navegue até a pasta wildrydes-site que você copiou para sua máquina local no Módulo 1.
- Abra o arquivo /register.html ou escolha o botão Giddy Up! na página inicial (página index.html) do seu site.
- Preencha o formulário de registro e selecione Let's Ryde. Você pode usar seu próprio e-mail ou um falso. A senha deve conter pelo menos uma letra maiúscula, um número e um caractere especial. Guarde essa senha: você vai usá-la posteriormente, Vai ser exibido um alerta, confirmando que o usuário foi criado.
- Confirme o novo usuário usando um destes métodos:
- Caso tenha usado um endereço de e-mail que você controle, será possível concluir o processo de verificação da conta visitando /verify.html no domínio do seu site e inserindo o código de verificação enviado a você por e-mail. O e-mail de verificação pode acabar indo para sua pasta de spam. Para implantações reais, recomendamosconfigurar seu grupo de usuários para usar o Amazon Simple Email Service para enviar e-mails de um domínio pertencente a você.
- Se você usar um endereço de e-mail falso, precisará confirmar o usuário manualmente no console do Cognito.
- No console do Amazon Cognito, selecione o grupo de usuários do WildRydes.
- Na guia Usuários, você verá um usuário correspondente ao endereço de e-mail que você usou na página de registro. Escolha esse nome de usuário para visualizar a página de detalhes dele.
- No menu suspenso Ações, selecione Confirmar conta para finalizar o processo de criação da conta.
- No menu pop-up Confirmar conta para usuário, escolha Confirmar.
- Depois de confirmar o novo usuário usando a página /verify.html ou o console do Cognito, acesse /signin.html e efetue login usando o endereço de e-mail e a senha inserida durante a etapa de registro.
- Em caso de sucesso, você deverá ser redirecionado para /ride.html. Você verá uma notificação de que a API não está configurada.
Importante: copie e salve o token de autenticação para criar o autorizador do grupo de usuários do Amazon Cognito no próximo módulo.