O blog da AWS
Saiba como a Natura migrou a autenticação de suas aplicações comerciais das suas consultoras de beleza para Cognito
A Natura
A Natura hoje é parte do grupo Natura &Co e, somada à Avon e The Body Shop, formam a 4ª maior empresa de cosméticos do mundo com operações em mais de 110 países.
O movimento de expansão para outros países somado aos esforços de digitalização da Natura a levaram a empresa a reavaliar soluções de TI e buscar oportunidades de otimização.
O desafio
Para apoiar as soluções globais da Natura &Co e sua jornada de digitalização, foi necessário definir uma solução de autenticação que fosse “multi-brand”, “multi-language” e também que fosse capaz de atender as operações do grupo em diferentes regiões do globo.
Após um estudo das diversas soluções disponíveis no mercado optamos pela construção de uma solução de autenticação que utiliza o Amazon Cognito como IDP (Identity Provider). Alguns dos motivadores que nos levaram a escolha do Cognito foram:
- Modelo de Cobrança baseado no número de usuários ativos no mês (monthly active users)
- Solução 100% baseada em cloud – pay as you go
- Uso exclusivo de AWS managed services
- MFA e login social nativos
A Solução
A Natura, com o apoio da AWS, optou por desenvolver uma solução de login customizada, onde utilizamos a Akamai como uma camada de segurança, protegendo contra ataques e tráfego mal intencionado. Armazenamos os componentes estáticos em um S3 Bucket. Os acessos as APIs de autenticação são feitas através de um Amazon API Gateway.
Uma função AWS Lambda responsável por chamar o Amazon Cognito para realizar a autenticação e que valida também se a sessão do usuário está ativa em um cache Redis.
Após o login do usuário no Amazon Cognito, uma função nativa do Cognito de Lambda Trigger dispara um Lambda no evento de pré token generation, e esse Lambda é responsável pelo enriquecimento do token JWT.
Um dos requisitos para implantação da nova plataforma de autenticação era que a migração dos usuários da base legada para o Amazon Cognito ocorresse de forma transparente para os usuários finais, ou seja, sem a necessidade de os usuários trocarem a senha ou seguir um novo fluxo de sign up para continuar acessando as aplicações.
Para atender a este requisito foi desenvolvido um fluxo responsável pela migração das credenciais da antiga plataforma de autenticação para o Cognito:
No diagrama acima podemos ver que uma função Lambda é responsável por verificar se os usuários existem no user pool do Amazon Cognito e, quando não encontrados, dispara uma ação de migração invocando uma outra função Lambda que faz uma requisição de API para a solução legada. Caso as informações de login estejam corretas, uma segunda API é requisitada. Esta recupera os dados de cadastro de usuário e, em conjunto à resposta do payload da função Lambda, o Amazon Cognito armazena os dados do usuário e as suas credenciais no user pool. No próximo login deste usuário o mesmo será encontrado no user pool do Amazon Cognito e este fluxo não é será executado.
Além dos fluxos detalhados acima, foram desenvolvidos também fluxos de reset de senha (forgot password) e primeiro acesso.
Resultados:
Desde a implantação do Cognito, em janeiro de 2022, o índice de APDEX de uma das principais aplicações da Natura segue em uma curva ascendente de melhoria, como mostra o gráfico abaixo:
Tivemos um impacto positivo também no tempo de login dos usuários, proporcionando uma melhor experiência para as consultoras:
Comparação tempos de Login | ||
Aplicação | Antes do Cognito | Depois do Cognito |
App1 | 7,7s | 2,7s (-5s) |
App2 | 7,6s | 2,9s (-4,7s) |
App3 | 10,9s | 2,8s (-7,1s) |
Em termos de custos, o Amazon Cognito também se provou mais barato que o seu antecessor. Analisando os resultados, após a implantação do Amazon Cognito houve uma redução média de 15% nos custos da plataforma de autenticação.
Depoimentos
“Aqui na Natura&Co América Latina, somos obcecados pela experiência da nossa rede de consultoras e consumidores e temos como missão oferecer soluções digitais simples, ágeis e seguras para que a rede de consultoras de beleza tenha cada vez mais produtividade.
Pensando nisso, escolhemos o Amazon Cognito como a nova solução de autenticação para melhorar a primeira experiência da nossa rede de forma a iniciar a sua jornada/experiência de compra de forma segura, otimizada e simples.”
Renzo Petri
“Após as aquisições do grupo Natura &Co nos últimos anos, nos tornamos uma companhia grande, que opera com múltiplas marcas (Natura, Avon, TBS e Aesop) em múltiplas regiões. Esse crescimento acelerado do grupo, gerou mais complexidade de operação além de um custo total alto.
Dentre as marcas do grupo, faltava convergência com relação a solução de autenticação. Cada marca usava um produto diferente, construídas com tecnologias específicas (que já sofriam o peso da idade), caras e que não escalavam o suficiente. E ainda demandavam tempo de gerenciamento, o que consumia o time de infraestrutura.
Com o objetivo de ganhar agilidade, simplificação e redução de custos com a operação, iniciamos o projeto para criar uma solução de autenticação global, que fosse robusta e escalável, que pudesse atender a todos os públicos, de todas as marcas, em qualquer lugar do planeta! Customização também era um fator importante, uma vez que cada país opera com regras de negócio especificas, e buscávamos uma transição transparente para os usuários, frente ao alto risco que é trocar uma solução de autenticação, ainda mais para muitas aplicações ao mesmo tempo.
O trabalho em parceria com a AWS foi de suma importância para chegarmos ao desenho final da solução, quase que totalmente serverless, que hoje escala quando (e quanto) necessário, custa apenas o que é usado (e bem menos do que outras proprietárias de mercado), e não demanda overhead dos times de SRE com provisionamentos ou manutenções.
Indubitavelmente hoje vemos que esta solução foi um enabler fundamental para os projetos subsequentes da companhia, decorrentes do plano estratégico construído logo após a entrada da Avon no grupo. Trouxe um nível de maturidade muito grande para nossa operação, o que reflete diretamente na experiência e qualidade dos nossos serviços para as Consultoras, Revendedoras e clientes finais.”
Marcelo Fabricanti, Sr Cloud Platform Engineer & DevOps, Natura &Co Latam
Sobre os autores
André Paiva é Gerente de Tecnologia na Natura, atuando nas frentes de autenticação, governança de APIs e COE RPA. Com 16 anos de experiência em tecnologia, está sempre em busca de expandir o seu conhecimento, honrando os compromissos e prezando pelo bom relacionamento com a equipe.
Marcelo Fabricanti tem 16 anos de experiência em TI tendo exercido várias posições diferentes neste período. Iniciou a carreira com foco em suporte a aplicações, passou pelo ciclo de desenvolvimento de software e, mais recentemente, decidiu focar em Cloud & DevOps. Ele está na Natura há treze anos, e hoje ocupa o cargo de Cloud Platform Engineer & DevOps Specialist. Ele é responsável por liderar o desenvolvimento da Plataforma Cloud da Natura &Co, denominada Amazônia, além de ser protagonista na jornada de nuvem da companhia apoiando na modernização das tecnologias empregadas e na consolidação da cultura DevOps.
Renzo Petri tem 18 anos de experiência em TI abrangendo projetos e soluções de desenvolvimento, arquitetura e infraestrutura. Ele está na Natura há quase oito anos. Como Diretor de Arquitetura, Qualidade e Cloud Platform Engineering & DevOps, foi um dos responsáveis por transformar a infraestrutura da Natura, liderar a jornada da nuvem da empresa e criar a cultura DevOps / Cloud. Fã de tecnologias disruptivas, ele é atualmente responsável pelas equipes de Arquitetura Digital, Engenharia de Qualidade e Engenharia de Plataforma (DevOps).
Thiago Couto é arquiteto de soluções na AWS e atua no segmento Enterprise auxiliando clientes de Retail e CPG em suas jornadas para nuvem. Possui mais de 10 anos de experiência atuando em arquiteturas que englobam AI/ML, integrações, IoT e correlatos.
Breno Silva é Arquiteto de Soluções na AWS, trabalhando para o setor Enterprise. Atuou com clientes de CPG, varejo, indústria e automotivo. Faz parte de comunidades de Cyber-Security e de IoT. No tempo livre gosta de automatizar sua casa, tocar guitarra e praticar esportes ao ar livre.