Black Friday 20% de desconto
Tá acabando

0

dias

00

hrs

00

min

00

seg

Primeiras aulas do curso Amazon Cognito: autenticação como serviço

Amazon Cognito: autenticação como serviço

Usuários e efetuando Login - Introdução

Olá, pessoal. Sou o Daniel Amaral, vou ser o instrutor deste curso autenticação simples com Amazon cognito. A gente vai trabalhar neste curso com a ferramenta cognito da AWS, que é uma solução serverless de SSO, utilizado para autenticação e autorização de aplicações.

A solução da AWS oferece bibliotecas para integração com aplicações de múltiplas linguagens, e neste curso a gente vai fazer uso do Java script. É o Java script padrão, nenhum framework mais evoluído. É só uma biblioteca Java script mesmo. E a gente vai entregar um projeto pré-codificado para que a gente possa se concentrar na integração desta aplicação com o Amazon cognito.

A ideia então não é ter muita complexidade durante a implementação do código em si. Esse aqui é o produto final do nosso curso, a gente vai criar essa aplicação. Na verdade, vamos implementar essas funcionalidades. A aplicação já está pré-desenvolvida.

Eu vou apresentar a estrutura do projeto para vocês de forma macro. É isto aqui. Estou usando uma ferramenta visual studio code, vocês podem usar o notepad ++ ou qualquer outra ferramenta que preferirem.

Esta aplicação é comporta de um arquivo CSS, algumas imagens padrão, três arquivos Java script, entre eles uma aplicação de controle do nosso frontend, que é só uma página html, que vai espelhar isso aqui. Uma aplicação que é um arquivo JSS que é onde a gente concentrar nossa codificação, que é esse cognite facade, a gente vai criar uma fachada para as operações existentes aqui nesse outro arquivo Java script, que é o Amazon cognito identity, a biblioteca de criação de fato com o cognito.

Nossa implementação vai ficar focada aqui. Neste arquivo vocês vão poder observar que já existe uma série de métodos, esqueletos de métodos a serem implementados. A gente vai seguir essa mesma estrutura. Em um método novo vamos fazer a implementação da codificação dessas funcionalidades para poder possibilitar o correto funcionamento da nossa solução.

Voltando um pouco na apresentação da estrutura do nosso projeto, trata-se de uma aplicação com um arquivo html, um spa, todo nosso frontend está contido aqui. Alguns arquivos CSS, algumas adequações em csl, a gente está usando o Bootstrap aqui e mais algum CSS customizado, algumas imagens, e três arquivos Java script.

O primeiro deles aqui é o Amazon cognito identity. A biblioteca de fato de integração com a Amazon. A gente vai ver durante o curso como baixar esse arquivo. O cognito facade é onde a gente vai concentrar, toda nossa codificação vai ser realizada nesse cognito facade, a gente vai fazer uso de algumas funções que estão contidas nessa biblioteca do Amazon cognito e a codificação dela vai se dar no cognito facade.

E a gente tem outro arquivo, que é o login controller, que só faz o controller mesmo do nosso frontend. A gente não vai mexer nesse arquivos. Então, resumidamente a gente vai mexer no arquivo cognito facade. Nossa implementação vai ser aqui.

E apresentando um pouco desse arquivo inicial do cognito facade a gente vai ter uma série de esqueletos de métodos que a gente vai implementar durante o curso, get user, confirmação de cadastro no cognito, realização de login. A gente tem o esqueleto de todos os métodos.

Nossa aplicação está pré-codificada com esqueletos de funcionalidade. Toda a parte de frontend, de controller de frontend já está implementada. Se a gente for na nossa aplicação, e der um F12 para aparecer o console do developer, vamos usar a operação de confirmação de cadastro, ele vai imprimir a mensagem, porque por hora todas as funções que a gente vai implementar no decorrer do curso só estão fazendo uma impressão do console.

Esse é o projeto. Espero que vocês gostem do curso, e até a primeira aula.

Usuários e efetuando Login - Primeira app utilizando Cognito

Vamos iniciar aqui nosso curso de autenticação simples com Amazon cognito. A gente trabalha na empresa Alura games e fazemos parte de um squad que recebeu um projeto para criar um portal para os nossos clientes, que são distribuidores de games. A primeira missão que a gente tem nesse projeto é definir a tecnologia que vai ser utilizada para a parte de autenticação nesse portal.

A gente fez uma avaliação de uma série de opções, open source e pagas, e chegamos numa alternativa disponibilizada pelo AWS, que é o Amazon cognito, uma solução serverless voltada para autenticação e autorização de aplicações.

Nossa primeira missão aqui é fazer uma poc, o uso dessa aplicação pré-desenvolvida, que é uma aplicação Java script. Aqui só tem html, Java script e Bootstrap. A gente vai fazer a autenticação disso.

Nossa missão é criar um cadastro de usuários no cognito, cadastrar um usuário via console e permitir o login desse usuário através desse frontend aqui. Essa é nossa aplicação, é uma aplicação bem simples, Alura games poc, a gente tem o índice, que é esse front end que a gente está visualizando aqui. Temos três arquivos Java script.

Login controller, que é o controller do nosso frontend, temos o controle da biblioteca Amazon cognito, que é o identity mean js, o arquivo de integração, o meio de integração para linguagem Java script disponibilizada pela AWS, e o cognito facade, que é uma fachada para essas operações disponibilizadas com cognito identity.

Aqui tem muita coisa, a gente vai concentrar tudo que vamos fazer uso de fato neste projeto no cognite facade. Vamos lá. O primeiro passo é entrar no painel da AWS. A gente já tem outros cursos na Alura que demonstram como criar contas na AWS, então a gente vai pular essa parte.

Vamos procurar pelo cognito, sincronização de dados de aplicação de dados de usuário. Vamos clicar em gerenciar grupos de usuários. Um grupo de usuários nada mais é do que uma base de dados com uma série de regras definidas por nós para representar e persistir os usuários da nossa aplicação.

Vamos criar aqui um novo grupo de usuários. Em nome do grupo vou definir o nome do nosso projeto, poc, login Alura. A gente vai fazer aqui uma criação de um grupo de forma bem simplificada, sem mexer em nenhuma das opções oferecidas aqui pelo cognito.

Feita essa poc a gente vai criar outra aplicação atendendo uma série de requisitos de negócio e detalhando um pouco mais as opções disponíveis pelo console. Revisar padrões, não vamos mexer em nada e vamos clicar em criar grupo.

Nosso grupo de usuários está criado. Nosso próximo passo é criar um cliente de aplicativo. A gente tem que definir quais aplicações podem fazer acesso a esse cadastro de usuários. Vamos clicar em clientes de aplicativo, adicionar um cliente de aplicativo.

Vamos colocar aqui poc login Alura games e js. Só para deixar claro que é uma aplicação Java script. Em aplicação Java script a gente não faz uso dessa opção de gerar segredo do cliente, então a gente vai desmarcar ela.

Clicamos em criar cliente de aplicativo, e está joia. Temos nosso cliente de aplicativo criado. Vamos pegar esse código id do cliente do aplicativo e vamos usar nossa aplicação no nosso frontend. Vamos clicar em iniciais cognito e application id vamos colocar nosso cliente de aplicativo.

Outra informação importante do nosso grupo de usuários, vamos clicar em configurações gerais, e copiar esse id do grupo. Isso é importante para a gente fazer a integração na nossa aplicação. Clicar em salvar no nosso frontend.

Teoricamente nossa aplicação está integrada com nosso cognito já. O próximo passo é criar um usuário. Vamos clicar no menu à esquerda embaixo de configurações gerais em usuários e grupos, e vamos criar um usuário. O nome do usuário vai ser Daniel Amaral. Vamos enviar um convite para esse cara, que sou eu, por e-mail. Senha temporária vai ser Teste123*. Não precisa de telefone. O meu e-mail. E não vamos mexer em mais nada, criar usuário.

Usuário criado, deve ter chegado um e-mail para mim de cadastro com minha senha temporária. A gente não vai implementar aqui nesse modelo uma função de troca de senha nesse momento. A gente vai usar essa senha mesmo para fazer login.

Então Teste123, vamos copiar e ir na nossa aplicação. Usuário ficou Daniel Amaral, senha Teste123. Efetuar login. Maravilha. Login feito com sucesso. Isso aqui é a ação realizada após login. O cognito disponibilizou para a gente alguns tokens. O id token refresh token e access token, para a gente poder transitar por APIs que a gente protegeu com a validação de tokens JWT.

Se a gente fosse implementar isso nesse momento. Esse é o objetivo do portal como um todo, mas não é nosso foco para este curso. Isso aqui são tokens, esse é o access token, é o cara que a gente trafegaria entre as requisições das nossas APIs, ele traz algumas informações do usuário logado, no caso user name. Nosso usuário vai mudar de status porque confirmamos o processo de cadastro com o primeiro acesso, e usuário confirmado.

Essa foi nossa primeira aula deste curso. Na próxima aula a gente vai dar andamento numa aplicação com algumas operações a mais e atendendo alguns requisitos de negócios.

User Pool e o cadastro - Pool de usuários personalizado

Voltando então para o nosso curso de autenticação simples com Amazon cognito. Na última aula implementamos o login com cognito, criamos o usuário e apresentamos isso para o resto do time, o pessoal gostou, e a gente vai dar sequência no projeto do portal da Alura games, no modo de autenticação via cognito.

Junto com o feedback de aprovação do uso do cognito a gente recebeu alguns requisitos para implementar no nosso projeto, que são esses aqui. A intenção é que o próprio usuário faça o cadastro no aplicativo, no nosso portal. A gente tem que pedir além dos dados que foram solicitados lá atrás na poc o nome do cliente também. A gente tem que garantir que o e-mail do cliente seja válido, a gente tem que enviar um código de confirmação aleatório para esse cliente ao fazer cadastro e permitir que ele conclua o cadastro fazendo uso desse código de confirmação.

E o pessoal pediu para a gente reduzir um pouco a complexidade da senha, porque a gente estava pedindo maiúsculas, minúsculas, caracteres especiais e um lenght mínimo de caracteres. O pessoal entendeu que pela informação apresentada não ser sigilosa nesse portal e o intuito do login ser mais um controle de quem está acessando, ter visibilidade de quem está tendo acesso, eles pediram para reduzir a complexidade dessa senha. É mais um requisito para a gente considerar no nosso projeto.

Além disso tudo aqui, foram definidas todas as funcionalidades que vão ser necessárias na aplicação do nosso portal. Esse aqui é o novo protótipo inicial que vai ser considerado. O pessoal de front end já fez um trabalho aqui e disponibilizou um menu com todas as funcionalidades que vão ser oferecidas para o nosso cliente. São essas aqui, cadastro de usuário, confirmação de cadastro, login, logout, trocar senha, esqueci senha e apagar usuário.

Vamos implementar a primeira funcionalidade disponível, que é o cadastrar usuário. Não esquecendo que a gente tem que considerar os requisitos que foram solicitados para nós como obrigatórios para implementação desse módulo de autenticação.

No nosso cognito, vamos criar outro pool de usuário, porque uma informação importante sobre o cognito. Algumas informações, algumas opções definidas no ato da criação do grupo de usuários não são modificáveis após a criação deste. Entre essas opções temos algumas definições de políticas, de campos que vão ser solicitados. Isso não é mais modificado após a criação de pools de usuário. A gente tem que ter um cuidado de criar isso aqui, porque senão vou ter que criar outro do zero, não tem uma função de réplica de um pool de usuários no cognito. Tem que criar um do zero mesmo.

No nosso caso não é um problema isso, então vamos dar sequência. Criar um grupo de usuários, vamos colocar aqui Alura games login, agora vamos clicar em configurações passo a passo, porque a gente quer ver as opções que estão disponíveis e se atentar aos requisitos que foram colocados para a gente.

Aqui em como você deseja que os usuários finais façam login a gente vai manter da mesma forma que foi disponibilizado, o usuário vai definir um usuário para ele. A gente não vai exigir login via e-mail.

Quais atributos a gente deseja exigir. Além de e-mail como um dos requisitos, a gente tem que definir também deixar o cara imputar o nome dele, então a gente vai exigir o name. Esse campo vai ser exigido no momento de cadastro do cliente.

Tem uma série de outros campos que poderiam ser solicitados também, mas não faz parte do nosso escopo para esse projeto. Além desses campos, uma informação importante que vale a pena mencionar, que além desses campos pré-definidos a gente pode criar campos personalizados para serem solicitados no cadastro do cliente.

Próxima etapa. Vamos reduzir a questão da política de segurança da nossa senha. O pessoal quer que a gente reduza essa complexidade. E vamos fazer uma proposta para ele de fazer uma senha simples com números. Não é muito seguro, mas vamos atender o requisito inicial dos nossos clientes e apresentar brechas de segurança, mas como posto pela área não há uma preocupação hoje com a segurança dessas informações, porque não é nada sigiloso.

Não vamos exigir caractere especial, nem letras maiúsculas, e não vamos exigir letras minúsculas. Vai ser só uma senha numérica. Vamos ignorar essa recomendação de segurança da Amazon e vamos exigir só números.

Vamos permitir que os usuários se cadastrem e as senhas temporárias geradas pela nossa aplicação vão continuar expirando em sete dias. Não vamos habilitar autenticação multifator. Para quem não sabe, é aquela autenticação onde você recebe e faz um login e precisa complementar com um código enviado para o seu celular, para o seu e-mail, ou gerado por algum gerenciador de códigos de segurança, não é o caso do nosso projeto agora, não vamos fazer uso disso.

Não vamos mexer em mais nenhuma opção aqui. Vamos verificar o e-mail, não vamos fazer mais nenhuma modificação. Não vamos personalizar o e-mail nesse momento, tudo fica conforme sugestão inicial. Sem tags de grupos de usuário. Próxima etapa é clientes de aplicativo terão acesso a esse grupo de usuário? Sim. Vamos criar um cliente de aplicativo.

Nome do cliente é Alura-games-login. Não vamos gerar segredo do cliente, porque nossa aplicação vai ser uma aplicação Java script e isso não funciona numa aplicação Java script. Não neste momento, pelo menos. E vamos clicar em criar cliente do aplicativo.

Próxima etapa. Não vamos fazer nenhuma personalização nos fluxo de trabalho com gatilhos. Não vamos fazer nenhuma customização. Próxima etapa. Tudo ok. Criar grupo de usuários.

Vamos fazer igual a outra aplicação, vamos guardar esse id do grupo no nosso arquivo de texto, e vamos pegar nosso cliente de aplicativo, pegar o id do cliente de aplicativo.

Duas informações importantes para a gente integrar nosso front end com esse portal. Agora, o que a gente vai fazer é configurar as nossas credenciais no nosso novo portal. Vou só apresentar um pouco a aplicação nova.

Vamos cadastrar nossas credenciais na nossa aplicação. Importante é clicar em esquecer, caso ela já venha preenchida, porque os nomes das variáveis são os mesmos da nossa poc, a gente reaproveitou para evoluir para essa outra aplicação. Então a gente tem que clicar em esquecer para ele não considerar as credenciais que tinham sido geradas anteriormente.

Vamos mandar nosso id de grupo, e aqui o nosso id do cliente do aplicativo. Salvar. Teoricamente estamos integrados. A gente vai conseguir testar e validar isso no momento em que a gente criar nossa operação de cadastro. Vou fechar por aqui para a gente não ficar com o vídeo muito comprido, na próxima aula então a gente implementa o cadastro de usuário.

Sobre o curso Amazon Cognito: autenticação como serviço

O curso Amazon Cognito: autenticação como serviço possui 92 minutos de vídeos, em um total de 50 atividades. Gostou? Conheça nossos outros cursos de Cloud em Infraestrutura, ou leia nossos artigos de Infraestrutura.

Matricule-se e comece a estudar com a gente hoje! Conheça outros tópicos abordados durante o curso:

Tá acabando

0

dias

00

hrs

00

min

00

seg

  • 1244 cursos

    Cursos de programação, UX, agilidade, data science, transformação digital, mobile, front-end, marketing e infra.

  • Certificado de participação

    Certificado de que assistiu o curso e finalizou as atividades

  • App para Android e iPhone/iPad

    Estude até mesmo offline através das nossas apps Android e iOS em smartphones e tablets

  • Projeto avaliado pelos instrutores

    Projeto práticos para entrega e avaliação dos professores da Alura com certificado de aprovação diferenciado

  • Acesso à Alura Start

    Cursos de introdução a tecnologia através de games, apps e ciência

  • Acesso à Alura Língua

    Reforço online de inglês e espanhol para aprimorar seu conhecimento

  • Desconto 20%

Premium

Desconto 20%
  • 1244 cursos

    Cursos de programação, UX, agilidade, data science, transformação digital, mobile, front-end, marketing e infra.

  • Certificado de participação

    Certificado de que assistiu o curso e finalizou as atividades

  • App para Android e iPhone/iPad

    Estude até mesmo offline através das nossas apps Android e iOS em smartphones e tablets

  • Projeto avaliado pelos instrutores

    Projeto práticos para entrega e avaliação dos professores da Alura com certificado de aprovação diferenciado

  • Acesso à Alura Start

    Cursos de introdução a tecnologia através de games, apps e ciência

  • Acesso à Alura Língua

    Reforço online de inglês e espanhol para aprimorar seu conhecimento

12X
R$75 R$60
à vista R$900 R$720
Matricule-se

Premium Plus

Desconto 20%
  • 1244 cursos

    Cursos de programação, UX, agilidade, data science, transformação digital, mobile, front-end, marketing e infra.

  • Certificado de participação

    Certificado de que assistiu o curso e finalizou as atividades

  • App para Android e iPhone/iPad

    Estude até mesmo offline através das nossas apps Android e iOS em smartphones e tablets

  • Projeto avaliado pelos instrutores

    Projeto práticos para entrega e avaliação dos professores da Alura com certificado de aprovação diferenciado

  • Acesso à Alura Start

    Cursos de introdução a tecnologia através de games, apps e ciência

  • Acesso à Alura Língua

    Reforço online de inglês e espanhol para aprimorar seu conhecimento

12X
R$100 R$80
à vista R$1.200 R$960
Matricule-se

Max

Desconto 20%
  • 1244 cursos

    Cursos de programação, UX, agilidade, data science, transformação digital, mobile, front-end, marketing e infra.

  • Certificado de participação

    Certificado de que assistiu o curso e finalizou as atividades

  • App para Android e iPhone/iPad

    Estude até mesmo offline através das nossas apps Android e iOS em smartphones e tablets

  • Projeto avaliado pelos instrutores

    Projeto práticos para entrega e avaliação dos professores da Alura com certificado de aprovação diferenciado

  • Acesso à Alura Start

    Cursos de introdução a tecnologia através de games, apps e ciência

  • Acesso à Alura Língua

    Reforço online de inglês e espanhol para aprimorar seu conhecimento

12X
R$120 R$96
à vista R$1.440 R$1.152
Matricule-se
Conheça os Planos para Empresas

Acesso por 1 ano

Estude 24h/dia onde e quando quiser

Novos cursos todas as semanas