© Sundry Photography/Shutterstock.com
AWS Cognito é a resposta da Amazon para login e gerenciamento de acesso de identidade. Assim como serviços semelhantes, como Auth0 e Azure Active Directory, o AWS Cognito ajuda você a criar um sistema de gerenciamento de usuários.
Mas isso não é tudo. O Cognito também funciona bem com outros serviços da AWS, tornando-o uma adição ainda mais valiosa ao seu kit de ferramentas do que as alternativas concorrentes. Imagine ser capaz de autenticar usuários para sua API AWS AppSync GraphQL ou bucket Amazon S3 com facilidade e segurança. Você pode ver como os aplicativos corporativos, em particular, se beneficiam da integração da AWS.
Em No artigo de hoje, estamos nos aprofundando no AWS Cognito, explorando seus recursos, benefícios e algumas dicas úteis para ajudar você a aproveitar ao máximo esse serviço incrível.
AWS Cognito: visão geral
Então, o que exatamente é AWS Cognito? Como parte vital do ecossistema da AWS, o Cognito fornece uma rampa para você criar um sistema de inscrição e autenticação para seu aplicativo móvel ou web; sem ter que codificar uma plataforma escalável do zero.
Algumas das ferramentas mais valiosas incluem AWS SDKs e Cognito API, que facilitam a integração do AWS Cognito em seu aplicativo, e o Cognito Developer Guide, que fornece informações detalhadas sobre como usar o Cognito, bem como bem como as práticas recomendadas para autenticação e gerenciamento de usuários.
O AWS Cognito também permite que você personalize o processo de autenticação para atender aos requisitos específicos do seu aplicativo. Por exemplo, você pode criar um fluxo personalizado exigindo que os usuários forneçam informações adicionais ou passem por verificações de segurança adicionais antes de acessar seu aplicativo. Isso pode ser especialmente útil para aplicativos que lidam com dados confidenciais ou exigem um nível mais alto de segurança.
AWS Cognito: definição de preço
Um dos principais benefícios de usar o Cognito é que ele é pago-as-you-go, o que significa que você só paga pelo que usar. Nesta seção, examinaremos mais de perto os preços do Cognito e forneceremos um guia completo para entender quanto você pode esperar pagar por esse serviço.
Grupos de usuários do Cognito
Usuários do Cognito Pools é o principal serviço do Cognito que permite criar e gerenciar usuários para seu aplicativo. O preço desse serviço é baseado no número de usuários ativos mensais (MAUs) em seu grupo de usuários. O preço é o seguinte:
AWS Cognito Grupos de identidades
Os grupos de identidades permitem que você autentique usuários por meio de provedores de identidade externos, como Facebook, Google e Amazon, e forneça a eles credenciais temporárias da AWS para acessar outros serviços da AWS. O preço desse serviço é baseado no número de usuários ativos mensais (MAUs) e no número de autenticações. O preço é o seguinte:
Vale a pena observar que as informações de preço fornecidas neste artigo são provenientes do site da AWS e são precisas em janeiro de 2023. É sempre uma boa ideia verificar o Site da AWS para obter as informações de preços mais atualizadas.
AWS Cognito: Essential Features
Amazon Cognito fornece autenticação, autorização e gerenciamento de usuários para aplicativos móveis e da Web.
©Michael Vi/Shutterstock.com
Agora que você conhece o básico, vamos dar uma olhada em alguns dos recursos essenciais do AWS Cognito.
Grupos de usuários
Os grupos de usuários do Cognito funcionam como um diretório para usuários , e permitindo a criação e manutenção de um diretório de usuários, incorporação de registro e login em um aplicativo, bem como gerenciamento de contas de usuários, incluindo criação e verificação de contas.
Pools de identidade
Cognito Grupos de identidades, também conhecidos como identidades federadas, permitem a criação de identidades exclusivas para usuários e autenticá-los usando provedores de identidade como Facebook, Google ou Amazon, além de permitir identidades não autenticadas.
Login social
O Cognito suporta login social com provedores de identidade populares, como Facebook e Google, bem como login com a Amazon. Isso permite que os usuários façam login em seu aplicativo usando suas contas de mídia social existentes.
Autenticação multifator (MFA)
O Cognito oferece suporte ao uso de MFA para fornecer um nível adicional de segurança para seus usuários. Você pode fazer isso usando mensagens de texto SMS ou senhas únicas baseadas em tempo (TOTP).
Inscrição e login de usuário personalizáveis
Cognito permite que você personalize a aparência e sinta as páginas de inscrição e login para combinar com a marca do seu aplicativo.
Sincronização de dados do usuário
O Cognito permite que você sincronize os dados do usuário em vários dispositivos, permitindo que os usuários tenham uma experiência consistente em todos os seus dispositivos.
Atributos de usuário personalizáveis
O Cognito permite que você adicione atributos personalizados a perfis de usuário, como idioma ou local preferido, facilitando a personalização do usuário experiência.
Notificações push
O Cognito pode enviar notificações push aos usuários, tornando mais fácil mantê-los engajados e informados sobre novos recursos ou atualizações do seu aplicativo.
Fluxo de autenticação personalizado
O Cognito permite que você crie fluxos de autenticação personalizados para atender às necessidades específicas de seu aplicativo, como adicionar medidas de segurança adicionais ou integrações ng com outros serviços.
Gatilhos do AWS Cognito
Gatilhos do AWS Cognito podem estender a funcionalidade dos grupos de usuários, permitindo que os desenvolvedores executem lógica personalizada em eventos específicos. Esses gatilhos são uma função vital do AWS Cognito e executam ações como enviar um e-mail ou mensagem SMS, atualizar dados do usuário e muito mais.
Acionadores disponíveis no AWS Cognito:
Pré-inscrição: este acionador é invocado antes que um novo usuário seja registrado no grupo de usuários. Ele pode ser usado para validar a entrada do usuário, personalizar o processo de registro ou adicionar dados adicionais do usuário.Mensagem personalizada: esse gatilho é invocado quando uma mensagem é enviada a um usuário, como um código de confirmação ou senha redefinir link. Ele pode ser usado para personalizar o conteúdo da mensagem ou adicionar informações adicionais à mensagem.Post Confirmation: Este gatilho é invocado depois que um usuário confirma seu registro. Ele pode ser usado para enviar uma mensagem de boas-vindas, atualizar dados do usuário ou executar outras ações.Pré-autenticação: esse gatilho é invocado antes que um usuário seja autenticado. Ele pode ser usado para validar a entrada do usuário, personalizar o processo de autenticação ou executar outras ações.Post Authentication: este gatilho é invocado depois que um usuário é autenticado. Ele pode ser usado para atualizar os dados do usuário, executar outras ações ou redirecionar o usuário para uma página específica.Migração do usuário: esse gatilho é invocado durante a migração dos dados do usuário de um grupo de usuários anterior. Ele pode ser usado para manipular dados do usuário, executar validação de dados ou executar outras ações.
Como usar gatilhos Cognito
Criar uma função Lambda: a primeira etapa para usar um gatilho Cognito é criar uma função Lambda que será invocada quando o gatilho for ativado. Essa função deve conter a lógica que será executada quando o gatilho for invocado. Anexar o gatilho ao grupo de usuários: depois que a função do Lambda for criada, ela precisa ser associada ao gatilho no grupo de usuários. Você pode fazer isso por meio do console do Cognito ou usando a AWS CLI. Teste o gatilho: antes de implantar o gatilho na produção, é importante testá-lo para garantir que está funcionando conforme o esperado. Você pode fazer isso invocando o gatilho manualmente por meio do console do Cognito ou inscrevendo um novo usuário no grupo de usuários. Implantar o gatilho: depois de testar o gatilho e ver que está funcionando conforme o esperado, você pode implantá-lo na produção.
AWS Cognito: criando um grupo de usuários
Um dos principais recursos do Cognito é a capacidade de criar e gerenciar grupos de usuários. Esses são os diretórios de usuários que permitem autenticar e autorizar usuários em seu aplicativo.
Antes de começarmos, é importante observar que a criação de um grupo de usuários no Cognito requer uma conta da AWS. Se ainda não tiver uma, você pode se inscrever para uma conta de avaliação gratuita no site da AWS.
Passo a passo
O primeiro passo para criar um grupo de usuários é fazer login no Console de gerenciamento da AWS. A partir daí, navegue até o serviço Cognito procurando por “Cognito” na barra de pesquisa de serviços da AWS ou acessando o menu Serviços e selecionando Cognito. Quando estiver no painel do Cognito, você verá a opção de criar um novo grupo de usuários. Clique no botão “Criar grupo de usuários” para começar. Na próxima tela, você dará um nome ao seu grupo de usuários e escolherá uma revisão e configurações de verificação de e-mail. Você também pode ativar ou desativar determinados recursos, como MFA, recuperação de conta e rastreamento de dispositivos. Em seguida, você precisará configurar os Atributos do seu grupo de usuários. É aqui que você definirá quais atributos, como e-mail, número de telefone e nome, seus usuários precisarão fornecer quando se inscreverem. Você também pode especificar se determinados atributos serão obrigatórios ou opcionais. Depois de configurar os atributos, você precisará configurar as “Políticas” para seu grupo de usuários. É aqui que você especificará as políticas de senha, como comprimento e complexidade mínimos, e as regras para bloqueio de conta e recuperação de senha. A próxima etapa é configurar os Clientes do aplicativo para seu grupo de usuários. É aqui que você especificará o ID do cliente e o segredo do cliente para seu aplicativo e definirá as configurações, como retorno de chamada e URLs de saída. Por fim, você precisará configurar os “gatilhos” para o seu grupo de usuários. É aqui que você especificará quaisquer funções do Lambda acionadas quando determinados eventos ocorrerem, como quando um usuário se inscreve ou faz login. Depois de concluir todas as etapas acima, você poderá criar seu grupo de usuários clicando em Criar pool. Seu novo grupo de usuários agora estará pronto para uso e você poderá começar a autenticar e autorizar usuários em seu aplicativo.
AWS Cognito: criando um pool de identidades
Outro recurso principal do AWS Cognito é a capacidade de criar e gerenciar pools de identidades, que permitem conceder credenciais da AWS a usuários autenticados. Esta é uma etapa vital na configuração do acesso para seus usuários.
Vamos ver um detalhamento do que você precisará fazer. Se quiser explorar mais, confira o vídeo ou siga o tutorial oficial da Amazon.
Passo a passo
A primeira etapa na criação de um grupo de identidades é fazer login no Console de gerenciamento da AWS. A partir daí, navegue até o serviço Cognito procurando por “Cognito” na barra de pesquisa de serviços da AWS ou acessando o menu “Serviços” e selecionando “Cognito”. Quando estiver no painel do Cognito, você verá a opção de criar um novo grupo de identidades. Clique no botão”Criar pool de identidades”. Na próxima tela, você dará um nome ao seu grupo de identidades e escolherá um provedor de autenticação. Você pode optar por autenticar usuários por meio de um grupo de usuários, um diretório de usuários que você criou ou por meio de provedores de identidade social como Facebook, Google ou Amazon. Em seguida, você precisará configurar os “Provedores de autenticação” para seu grupo de identidades. É aqui que você especificará os detalhes dos provedores de autenticação escolhidos, como o ID do cliente e o segredo do cliente para seu aplicativo. Depois de configurar os provedores de autenticação, você precisará configurar a “Resolução de função” para seu grupo de identidades. É aqui que você especificará as funções que serão atribuídas aos usuários autenticados e as políticas que serão anexadas a essas funções. Por fim, você precisará configurar a “função não autenticada” para seu grupo de identidades. Essa função será atribuída a usuários não autenticados. Você pode optar por permitir que usuários não autenticados acessem recursos específicos ou pode optar por negar-lhes o acesso completamente. Depois de concluir todas as etapas acima, você poderá criar seu pool de identidades clicando no botão”Criar pool de identidades”. Seu novo pool de identidades agora estará pronto para uso e você poderá começar a conceder credenciais da AWS a usuários autenticados.
Prós de usar o AWS Cognito
Então, quais são alguns dos benefícios de usar o AWS Cognito?
Fácil de usar. O AWS Cognito é fácil de configurar e usar, permitindo que os desenvolvedores adicionem rapidamente autenticação de usuário e gerenciamento de identidade a seus aplicativos móveis e da web.Escalável. O AWS Cognito pode lidar com milhões de usuários e pode ser dimensionado facilmente para atender às necessidades de seu aplicativo.Seguro. O AWS Cognito usa protocolos padrão do setor, como OAuth 2.0 e OpenID Connect, para fornecer autenticação e autorização seguras para seus usuários.Econômico. Cognito é um pagamento conforme o uso-go, para que você pague apenas pelo que usar, tornando-o uma solução econômica para adicionar autenticação de usuário e gerenciamento de identidade ao seu aplicativo.
Desvantagens de usar o AWS Cognito
Quais são algumas das desvantagens de usar o AWS Cognito?
Configuração complexa e processo de configuração. Instalar e configurar o AWS Cognito pode ser um processo complexo e demorado, especialmente para quem não está familiarizado com o serviço.Opções de personalização limitadas. Embora o Cognito forneça uma ampla gama de recursos e funcionalidades, ele pode não atender às necessidades e requisitos específicos de todos os usuários.Custos mais altos para grupos de usuários maiores. À medida que o número de usuários em um grupo de usuários aumenta, o custo de uso do Cognito também aumenta.Suporte limitado para acesso off-line aos dados do usuário. O Cognito suporta principalmente o acesso on-line aos dados do usuário e pode não ser capaz de fornecer acesso off-line.Suporte limitado para provedores de identidade social. Embora o Cognito ofereça suporte a provedores de identidade social como Google e Facebook, ele pode não oferecer suporte a provedores terceirizados menores.
Guia do AWS Cognito: perguntas frequentes sobre recursos, benefícios e prós e contras (perguntas frequentes)
Para que serve o AWS Cognito?
Cognito é a solução de gerenciamento de identidade e inscrição de usuário da Amazon. Em outras palavras, ele permite que você adicione a funcionalidade de login ao seu aplicativo móvel ou web.
Quais são os dois principais componentes do Amazon Cognito?
Usuário do Cognito Os pools são usados para gerenciamento e autenticação de usuários, enquanto os Cognito Identity Pools são usados para autorização e acesso a outros recursos da AWS.
O que é autenticação multifator (MFA) e por que devo usá-la ?
MFA é uma medida de segurança adicional que exige que os usuários forneçam uma segunda forma de autenticação, como um código enviado para o telefone. Ele ajuda a proteger contra acesso não autorizado a contas de usuário.
Onde posso armazenar perfis de usuário e outros dados relacionados ao usuário ao usar o AWS Cognito?
Amazon O DynamoDB é a integração ideal para armazenar perfis de usuário e outros dados relacionados ao usuário.
Como posso fornecer arquivos enviados pelo usuário com segurança?
Usar o Amazon CloudFront e Amazon S3 para fornecer arquivos enviados pelo usuário com segurança.