O
Cognito é um serviço oferecido pela AWS (Amazon Web Services), que tem como
objetivo facilitar a autenticação e o controle de acesso para aplicativos
móveis em dispositivos conectados à Internet. Ele é responsável por gerenciar
todo o processo de cadastro de novos usuários, autenticação e controle de acesso,
permitindo que você se concentre em outras atividades importantes para o seu
negócio, sem precisar se preocupar com o gerenciamento de dados de usuários ou
com a configuração de serviços computacionais para autenticá-los.
Por
ser uma ferramenta totalmente gerenciada pela Amazon, todos os dados dos
usuários são armazenados no próprio Cognito, eliminando a necessidade de
armazenar essas informações em seu próprio sistema. Além disso, o serviço
garante a segurança desses dados, já que possui recursos de criptografia e
autenticação de usuário para garantir que apenas usuários autorizados tenham
acesso às informações.
O recurso conta
com a funcionalidade de Single Sign On (SSO), que permite o login único em
todas as aplicações da sua empresa.
Com o SSO do
Cognito, é possível realizar o login usando provedores de identidade social,
como Apple, Facebook, Google e Amazon, bem como provedores de identidade
empresariais via SAML 2.0 e OpenId Connect. Essa ampla integração com
diferentes provedores de identidade torna a experiência do usuário muito mais
conveniente e simplificada.
Toda essa
capacidade de integração do Cognito pode ser facilmente configurada, o que
permite que os desenvolvedores se concentrem em escrever códigos de qualidade
em vez de construir e gerenciar a estrutura de autenticação e controle de
acesso. O serviço possui telas de login e alteração de senha prontas e
altamente customizáveis, além de permitir a configuração de e-mails de
confirmação e recuperação de senha em HTML, o que permite que os e-mails tenham
a identidade visual da sua organização.
Em resumo, o Cognito é uma solução robusta e eficiente para gerenciamento de identidade, que permite aos usuários realizar login em diferentes aplicações de maneira simples e segura, além de proporcionar maior facilidade para as equipes de desenvolvimento implementarem e gerenciarem a autenticação e o controle de acesso em seus aplicativos.
Fundamentos do Cognito
O serviço da AWS que oferece uma ampla
gama de métodos de segurança para garantir a proteção dos dados de seus
usuários. Ele atende aos principais padrões de segurança e certificações de
conformidade, como PCI-DSS, HIPAA/HITECH, FedRAMP, GDPR, FIPS 140-2 e NIST
800-17.
Essas certificações garantem que o Cognito atende aos mais altos padrões de segurança e privacidade, proporcionando aos clientes maior confiança na proteção de seus dados e atendendo aos requisitos de conformidade de praticamente todos os órgãos regulamentadores do mundo.
O PCI-DSS é uma certificação de
segurança para organizações que lidam com pagamentos online, enquanto o
HIPAA/HITECH é um conjunto de regras para a proteção de informações médicas dos
pacientes. O FedRAMP é um programa de certificação de segurança do governo dos
EUA, enquanto o GDPR é uma regulamentação da UE sobre privacidade de dados
pessoais. O FIPS 140-2 é um padrão do governo dos EUA para criptografia e
segurança de informações, enquanto o NIST 800-17 é uma diretriz para a proteção
de sistemas de informação.
Existem dois principais conceitos envolvidos no Cognito: User Pools e Identity Pools.
User Pools são serviços que gerenciam o
registro de usuários, autenticação e autorização de acesso a aplicativos. Eles
fornecem uma maneira fácil e segura para gerenciar usuários em seus aplicativos
móveis, permitindo que você gerencie as informações do usuário, tais como nome,
e-mail, telefone, endereço e outras informações necessárias para seu negócio.
Identity Pools são serviços que gerenciam as credenciais de acesso do usuário para acessar outros recursos da AWS, tais como buckets S3, APIs, serviços Lambda e outros serviços da AWS. Eles fornecem um mecanismo seguro e confiável para autenticação de usuários em aplicativos móveis e concedem acesso limitado a outros recursos da AWS.
User Pools e Identity Pools são independentes um do outro, mas podem ser usados juntos para oferecer uma experiência de autenticação e autorização mais abrangente para seus usuários. Quando usados juntos, User Pools gerenciam as informações do usuário e as credenciais de autenticação e autorização, enquanto Identity Pools gerenciam o acesso limitado a outros recursos da AWS.
Precificação
A precificação
do Cognito é baseada no número de usuários ativos por mês (MAUs – Monthly
Active Users). Isso significa que apenas usuários que efetivamente utilizaram
seu aplicativo durante o mês são contabilizados e cobrados.
O Cognito
oferece duas opções de plano: o plano gratuito e o plano pago. No plano
gratuito, você pode armazenar até 50.000 usuários ativos por mês e realizar até
50.000 autenticações federadas por mês. Já no plano pago, você pode armazenar
um número ilimitado de usuários e realizar um número ilimitado de autenticações
federadas, mas será cobrado de acordo com o número de usuários ativos por mês.
O preço por MAU
pode variar de acordo com a região onde sua aplicação está sendo executada.
Você pode consultar a página de preços do Cognito na AWS para saber o valor
atualizado. Além disso, vale ressaltar que o Cognito não cobra por
autenticações fracassadas, ou seja, se um usuário tentar se autenticar e
falhar, isso não será considerado na contagem de MAUs e, portanto, não será
cobrado.
Mas o que são
os recursos avançados de segurança e o acréscimo de valor nos usuários?
O serviço oferece
recursos de segurança avançados que permitem personalizar ações em resposta a
diferentes riscos, como autenticação multi-factor, bloqueio de contas suspeitas
e monitoramento de atividades incomuns.
Esses recursos
de segurança avançados são opcionais e podem ser adicionados ao plano pago do
Cognito para aumentar a segurança da sua aplicação. Porém, como mencionado
anteriormente, a cobrança do Cognito é baseada no número de usuários ativos por
mês (MAUs). Se você optar por utilizar recursos avançados de segurança, o preço
por usuário será acrescido ao preço base da sua conta, aumentando o custo total
do serviço.
Vale lembrar
que a utilização dos recursos de segurança avançados é opcional e pode ser
ativada ou desativada a qualquer momento de acordo com as necessidades da sua
aplicação. Se você precisa de uma segurança adicional, pode valer a pena
considerar a opção de pagar um valor adicional para aumentar a segurança da sua
aplicação.
O Cognito oferece dois tipos de
cobranças que merecem ser explicados em mais detalhes.
O primeiro tipo de cobrança é para
usuários que fazem login por SAML ou OpenID Connect. Nesse caso, a partir de 50
usuários ativos por mês (MAUs), será cobrado US$0,015 por usuário ativo. Isso
significa que se a sua aplicação tiver mais de 50 usuários ativos por mês, você
será cobrado de acordo com o número total de usuários ativos por mês, e não
apenas pelo excesso de usuários acima de 50.
O segundo tipo de cobrança é para
autenticação MFA via SMS, que é uma opção adicional de segurança para
autenticação do usuário. No entanto, para utilizar essa opção de MFA via SMS, é
necessário utilizar outro serviço AWS chamado SNS (Simple Notification
Service). O preço de envio de SMS varia entre países, regiões e até mesmo entre
operadoras na mesma região, o que significa que os preços podem mudar com
frequência com base na operadora de telecomunicações do número de destino.
Em resumo, ao usar o Cognito para autenticação por SAML ou OpenID Connect, a cobrança é de US$0,015 por usuário ativo após os primeiros 50 MAUs. Já a cobrança pela autenticação MFA via SMS depende do preço da operadora de telecomunicações do número de destino, e é necessário utilizar o serviço SNS da AWS para enviar os SMS.
gustavo.mainchein@darede.com.br
Gustavo possui larga experiência em desenvolvimento de software e cloud computing. Ele possui diversas certificações da Hashicorp e da AWS, sendo a última AWS DevOps Engineer – Professional.