AWS COGNITO

An Introduction to AWS Cognito — Pros, Cons, and Use Cases

AWS Cognito is an identity management service that lets you sync all your user information in one place in a simple, secure, and scalable way.

Manish Manalath
Dec 17, 2019 · 4 min read

AWS Cognito is a user and identity management service that lets you implement user login and signup into your web and mobile applications. Cognito is simple, secure, and scalable, enabling you to manage all your users in one place across multiple devices.

Let’s go through some of the major pros and cons of using AWS Cognito along with a few use cases where Cognito would be the best choice for building authentication for your web / mobile application.

Pros

If your application is multi-device, using Cognito would make your life as a developer easier. Setting up multi-device authentication using a single user account is hard, especially from a security standpoint.

Cognito is built to handle multi-device authentication seamlessly, enabling your users to use the same login on their web, mobile and, desktop applications. In terms of user experience as well as ease of implementation, multi-device authentication is a big win for Cognito.

Another useful feature of Cognito is its ability to allow guest logins to your product. For users who would like to try out a product/service before making a purchase decision, guest logins can be used to provide restricted access to your product’s features.

Cognito also syncs guest user data into an actual account when the user decides to go through the full signup process. Again, this is a win for Cognito, especially in terms of developer hours required to build such a feature into your product/service.

Cognito allows integration with third-party authentication systems like Google and Facebook, thereby providing more options for your users while signing up for your product.

Even though you will not be able to get a lot of information about your users from third party login providers, some users prefer to use social logins compared to email-based signups.

Cognito allows you to set password policies to secure your user’s accounts which prevents users from setting up weak passwords. It is always advisable to force users to set a strong password to prevent them from being vulnerable to security threats.

Multi-factor Authentication can also be configured using AWS Cognito to add an additional layer of security. If your business handles sensitive data, using multi-factor-authentication will help secure your data from being accessed by unauthorized entities.

Cognito integrates with AWS Pinpoint to provide you with analytics on user behavior, helping you to better segment your audience. You can also keep your customers engaged by sending them product specific information, run targeted email campaigns and reach your customers across all devices using multi-channel messaging (emails, SMS and push notifications).

Cons

Even though Cognito allows a number of configuration options including custom signup responses and email verification, Cognito comes in as a complete package. This means that you cannot integrate custom features or authentication methods other than the ones allowed by Cognito.

Cognito offers all of the features you will need to implement a standard authentication mechanism. But if you are a fan of fine-grained control of your entire authentication infrastructure, Cognito might not be for you.

Cognito offers additional security options to secure your user data, but for a price. For companies, especially healthcare startups where security is the primary concern, this can add a considerable amount to your AWS bill.

And the more users you have, the more you will pay for that extra security.

In order to fully integrate Cognito to your application, you will have to learn to use the AWS SDK or hire someone to do it for you. This is typical of all new tools and packages, but it still involves time and effort in order to design your product/service to work with AWS Cognito.

Use Cases

  • Set up automatic email verification for users via a verification code or link in order to double-check emails.
  • Allowing temporary access to AWS resources like S3 to users while using your product.
  • Trigger lambda functions for the user life cycle. eg. Run a lambda function to show suggested products when the user adds a product to the shopping cart.

Summary

AWS Cognito offers a complete user identity management system that allows you to build great user experiences for your customers across multiple devices. With a few cons and a lot of pros, AWS Cognito is a great tool to implement a secure and scalable user authentication for your next product or service.


Signup for my Weekly Newsletter and I’ll send you a summary of articles and videos every week. No spam. No ads.

AWS Tutor

Articles, How-Tos and Use Cases on AWS Tools and Services

Manish Manalath

Written by

10 years as a Digital Nomad. Writes on Tech (http://awstutor.io) and Productivity. Connect with me on Linkedin (linkedin.com/in/manishmshiva)

AWS Tutor

AWS Tutor

Articles, How-Tos and Use Cases on AWS Tools and Services

More From Medium

More from AWS Tutor

More on Programming from AWS Tutor

More on Programming from AWS Tutor

Welcome to a place where words matter. On Medium, smart voices and original ideas take center stage - with no ads in sight. Watch
Follow all the topics you care about, and we’ll deliver the best stories for you to your homepage and inbox. Explore
Get unlimited access to the best stories on Medium — and support writers while you’re at it. Just $5/month. Upgrade