Let’s begin with a question, to what extent can we use AWS services to manage our applications without worrying about administrative burden? Is there a limit? Well, there might be, but for most use cases, simply leveraging the available services significantly helps. Let’s talk about a similar service Amazon Cognito, a simple-to-use tool that you can utilize to manage user authentication and management for your application. User Pools are simply one of two major features provided by Cognito, the other being Identity Pools. Lets discuss User Pools in brief.
Overview
Amazon Cognito is a user management service that allows you to manage and store user sign in information and process requests. To understand better, imagine you had to create and manage user sign-in configurations with the traditional process. For example, would have to create your database to store user information, implement authentication logic in your application code, manage password encryption, use caching mechanisms to maintain performance, and adding some other extended functionalities. Now imagine not having to do all that, and thats where Cognito User Pools come into play. You will be able to manage your authentications with just a few clicks and not worry about scaling with this AWS managed tool. Lets now discuss how this actually works with Cognito User Pool.
Cognito User Pool
In User Pools, you configure the user sign-up/sign-in part your web application. You can set attributes you want the user to fill in while filling the login or signup form, including password and account recovery characteristics that would otherwise be difficult to manage with the traditional approach.


Further, you can also set federated access, where users can sign in through their third party Identity Providers (IdP) like Facebook and Google. This process however might be a bit complex, as the steps include setting up your developer account with those external third-party IdPs, and setting up your application with them. This might get a little difficult, but you don’t really need to completely deep dive on this if you’re just starting out on Cognito, but I’d recommend you to remember that this feature integration does exist!
Basic User Pool Workflow

Here is the workflow to simply help you understand better. Any user requests a sign-in into your application which is received by the Cognito User pool. Cognito sends authentication challenges like Captcha, back to the user. The user responses to the challenges and when it gets verified by Cognito, you are provided with the sign-in tokens which are instantly issued, and you can finally access the application.
User Pool integration with third-party IdP

This is similar to the basic workflow, the only difference being validation for credentials is handled by the third-party IdP. Have a look, rest is pretty easy to understand!
Summary
Amazon Cognito User Pools is a powerful tool you can leverage for user authentication and management reducing your administrative burden significantly. It removes the need for patching and maintenance of your resources from your end as this is a managed AWS service, and this is really simple to use as well. I recommend you try it out for yourself, you will love it!