2.1.1 Federated Access (Cognito)

Amazon Cognito

User Pools (Authentication — “Who are you?”)

User directory quản lý sign-up, sign-in, MFA.

FeatureMô tả
Sign-up/Sign-inEmail, phone, username
MFASMS, TOTP (authenticator app)
Social providersGoogle, Facebook, Apple, SAML, OIDC
Hosted UIPre-built login page
Lambda triggersPre/post authentication, custom message, pre token generation

JWT Tokens

TokenMô tảDùng cho
ID TokenUser identity (claims: email, name, groups)Application authorization
Access TokenScopes, permissionsAPI authorization
Refresh TokenLấy tokens mới khi expiredToken renewal

Identity Pools (Authorization — “What can you do?”)

  • Cung cấp temporary AWS credentials (STS)
  • Federation sources: User Pools, social providers, SAML, OpenID Connect
  • Map authenticated/unauthenticated users to IAM roles
  • Fine-grained access control với policy variables

Typical Authentication Flow

1. User → Cognito User Pool → Sign in
2. User Pool → JWT Tokens (ID, Access, Refresh)
3. JWT Token → Cognito Identity Pool
4. Identity Pool → STS → Temporary AWS Credentials
5. Credentials → Access AWS Services (S3, DynamoDB, etc.)

User Pool vs Identity Pool

User PoolIdentity Pool
PurposeAuthenticationAuthorization (AWS access)
OutputJWT TokensAWS Credentials
User management
FederationSocial, SAML, OIDCUser Pools, social, SAML

Exam Tip: User Pool = authentication (JWT tokens). Identity Pool = authorization (AWS credentials). Cần cả hai khi user cần truy cập AWS services trực tiếp.