Intro & Overview
Integrating Apps and their Data
The course is part of this learning path
This course explores Amazon Cognito and how it can be used to manage authentication and authorization to your apps. We'll start with a general overview of Amazon Cognito and when to use it. Then we move on to user pools and identity pools. We round off the course by looking at how Amazon Cognito can be integrated with mobile and web apps and how to sync your app's user data across various platforms.
- Create your own authentication mechanisms using Amazon Cognito
- Create your own customized UI for user sign in
- Create a secure user directory for all your applications and users
This course is intended for anyone who is trying to understand what mechanisms are available for user authentication within AWS and specifically, those who want to use third-party identity providers, such as Apple, Facebook, Google, and Amazon.
- A decent understanding of cloud computing and cloud architectures, specifically with Amazon Web Services
- Familiarity with basic security terminology, IAM, user authentication, and federation
- It is helpful to know about Active Directory and other AD type services
Alrighty, now let’s take a look at how authentication works with Identity pools.
The first part we should already be familiar with. Your application needs to have the user sign in with Cognito user pools and that can take place using either the user pool itself, a social sign-in, your SAML-backed authentication service or something of that ilk.
At this stage, an Identity Token is sent by the IDP back to the Cognito user Pool. Now Cognito does not store the credentials by the IDP or forward this to your mobile app, instead, the IDP token will be normalized into a standard token, called a Cognito User Pool Token, or CUP token and this will be used and stored by Cognito. This essentially means that it doesn’t matter if the user authenticated via an account in the User Pool, or federated access, all tokens will be standardized that are sent back to your app.
The actions carried out by the user on your app might also need to access back-end services or APIs that you have created, for example, you might be using API Gateway or Lambda - which accepts these CUP tokens, so Cognito will use the same CUP token to authenticate and authorize you to use those APIs with API Gateway, etc.
Now some services do not allow you to use the CUP tokens for authentication. If your mobile app requires access to services such as S3 or DynamoDB on the user’s behalf, then you will need to use the Identity Pool to authenticate.
The CUP Token can be sent to the Identity Pool, where an STS Token (Security Token Service) will be created based off of your CUP token, and this will be sent back to your application.
With these AWS credentials, your application will now be allowed to call upon those other AWS services.
These credentials will be linked to an AWS role you have associated with your users within the identity pool.
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.