The course is part of this learning path
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)
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.