image
User Pools Authentication Flow
Start course
Difficulty
Beginner
Duration
1h 34m
Students
29
Ratings
5/5
Description

This course covers the core learning objective to meet the requirements of the 'Designing Network & Data Transfer solutions in AWS - Level 1' skill

Learning Objectives:

  • Understand the AWS shared responsibility model
  • Understand AWS access management capabilities to enforce security at different levels (IAM, AWS Organizations, Control Tower, Service Catalog, Amazon Cognito)
  • Understand where to find AWS compliance information (AWS Artifact)
Transcript

Now that we know a little bit more about User pools, let’s quickly examine how the authentication flow is handled by your application and the service.

Your user will be presented with a login screen or terminal of some sort from within your application. They will submit their credentials, either from having created an account directly or by logging into a third-party provider. 

The application will call the  InitiateAuth operation with those credentials. This API call kicks off the authentication flow. It directly indicates to amazon Cognito that you want to authenticate. 

If the call is successful - Cognito will respond either with a token or with a challenge.

A challenge can include CAPTCHAs or Dynamic challenge questions. These are normally used to help screen for bots. You can insert your own custom challenges if you wish. This will be sent back to the client and it now becomes Their problem.

When the client is ready to respond back to the server(cognito), they can reply with RespondToAuthChallenge and provide whatever information the challenge requires back. If the user fails the challenge, you can have Cognito set up to resend a new one. This can include multiple rounds until the user is successful or fails out.

If successful Cognito will shoot back some tokens for the client to use - Hurray authentication!

For a deeper dive into the process please take a look over here.

About the Author

William Meadows is a passionately curious human currently living in the Bay Area in California. His career has included working with lasers, teaching teenagers how to code, and creating classes about cloud technology that are taught all over the world. His dedication to completing goals and helping others is what brings meaning to his life. In his free time, he enjoys reading Reddit, playing video games, and writing books.