Ravindra BagaleCourses & study guides English Track your progress

Amazon Cognito म्हणजे काय? User Pools आणि Identity Pools सोप्या भाषेत

React ला sign-up/login/MFA + S3 upload credentials हवी — custom auth server नको. Cognito: User Pools (directory/tokens) + Identity Pools (IAM creds).

या chapter मध्ये तुम्ही काय शिकाल

  • Managed auth का
  • User vs identity pools
  • JWT/app clients/IdPs
  • Industries
  • Lab, errors, FAQ, interview

1. आधी रोजचं उदाहरण

कोची fitness: email OTP/Google. User Pool JWT. Identity Pool → short IAM S3 Put. API Gateway JWT authorizer.

2. Cognito का?

हे का लागतं?

Password/MFA/token crypto चुकणं सोपं. Cognito = OAuth2/OIDC + IAM hooks.

  • Hosted UI / SDKs
  • Social/SAML IdPs
  • JWT APIs
  • Temp AWS creds

3. User Pools आणि Identity Pools काय?

हे काय आहे?

User Pool = directory + JWT. Identity Pool = JWT/guest → IAM roles via STS.

Pieceकाम
User poolAuthN + tokens
App clientClient settings
Hosted UIReady login
Identity poolToken→IAM
JWT authorizerAPI validates
TriggersLambda hooks
Sign-in → JWT → API and/or IAM → AWSUser
API & S3

4. सुरक्षित app client

कसं करायचं (step by step)

  1. User pool + password/MFA.
  2. App client; PKCE; no secret in SPA.
  3. Tight callback URLs.
  4. Social/SAML review.
  5. JWT authorizer.
  6. Identity Pool prefix IAM.
  7. Server-side authorize.
  8. Refresh/revoke.
  9. Advanced security.
  10. Server checks always.
# Mental model
# 1) User Pool authenticates → JWT
# 2) API Gateway JWT authorizer checks iss/aud/exp
# 3) Optional: Identity Pool GetCredentialsForIdentity → S3 PutObject

5. तुलना

Choiceकधी
User poolCustomer AuthN
Identity poolApp AWS creds
IDCWorkforce SSO
AVPFine authZ

6. Multi-industry notes

EdTech social login. Hospitals SAML clinicians + Cognito patients. Fintech MFA mandatory.

7. Industries आणि roles

  • Startups: fast auth
  • EdTech: social/OTP
  • Healthcare: SAML/patients
  • Fintech: MFA
  • API: JWT

8. Lab: user pool + Hosted UI

Org block नसेल तर ap-south-1 (Mumbai). आधी budget alert.

कसं करायचं (step by step)

  1. User pool email.
  2. App client callback.
  3. Hosted UI + inspect JWT.
  4. Optional Identity Pool.
  5. JWT authorizer mindset.

Cleanup (billing थांबवा)

  1. Delete pools/roles.
  2. Callbacks clean.

9. सामान्य errors आणि fixes

प्रत्येक row = खरी चूक. Panic करण्याआधी fix वाचा.

Error / लक्षणFix
Secret in ReactPKCE public.
Callback *Exact URLs.
Client-only trustAPI verify.
Admin roleLeast privilege.
Pools confuseTokens vs creds.
Revoke ignoreLogout design.
MFA offEnable MFA.
Challenge mishandleHandle challenges.
PII attributesConsent.
Long access tokenShort exp.

10. Troubleshooting checklist

  1. Callback mismatch.
  2. Auth flows.
  3. CORS.
  4. Trust mapping.
  5. aud/iss.
  6. SES sandbox.

11. FAQ

प्र. Cognito मोफत?

MAU pricing.

प्र. Auth0?

Compare TCO.

प्र. Offline?

Design refresh.

प्र. SAML?

Federation yes.

प्र. Guest?

Tight unauth role.

प्र. Passwordless?

Check docs.

12. Interview Q&A

प्र. Pools?

JWT vs IAM creds.

प्र. JWT?

Signed API token.

प्र. PKCE?

Public client protect.

प्र. Hosted UI?

Managed login.

प्र. S3 upload?

Prefix IAM.

प्र. Workforce?

IDC vs Cognito.

13. Tips — English, मराठी आणि हिंदी

Ravindra Bagale's Tip (EN)

Never ship a Cognito client secret inside a mobile or SPA binary. Public client + PKCE, and authorize on the server.

Ravindra Bagale's Tip (MR)

Mobile/SPA मध्ये client secret नका. Public+PKCE; server authorize.

Tip (HI)

मोबाइल/SPA में client secret मत डालो — public+PKCE और server पर authorize।

घरी करून बघा

  1. User pool→JWT→APIG draw.
  2. Prefix-by-sub IAM sketch.
  3. 3 callback mistakes.

थोडक्यात सांगायचं तर

  1. User pool = JWT AuthN.
  2. Identity pool = IAM.
  3. PKCE + API verify.
  4. Least privilege.

उजळणी, मुलाखत आणि तुलना cards

हा lesson काही मिनिटांत revise करा. Cards phone वर save करा किंवा PNG download करा. प्रत्येक card वरचा QR हा lesson उघडतो.

उजळणी card: Cognito user आणि identity pools. Home-grown auth = risk. User pool=AuthN; Identity pool=AWS creds. Pool+client → JWT → API; optional id pool. Sign-in → scoped S3 upload.
उजळणी card: Cognito user आणि identity pools · PNG download करा · Card page उघडा
उजळणी card: JWT validate करा. No verify = impersonation. iss/aud/sig/exp check. Authorizer or middleware; no skip. exp/aud fail → 401.
उजळणी card: JWT validate करा · PNG download करा · Card page उघडा
तुलना: User pool vs Identity pool. User pool: Sign-in/MFA/JWT. Identity pool: Temporary AWS credentials.
तुलना: User pool vs Identity pool · PNG download करा · Card page उघडा
तुलना: JWT access token vs Server session cookie. JWT access token: Stateless JWT via JWKS. Server session cookie: Server session store.
तुलना: JWT access token vs Server session cookie · PNG download करा · Card page उघडा
मुलाखत card: User pool vs identity pool?. AuthN vs AWS creds. Often user pool enough. JWT API; id pool S3.
मुलाखत card: User pool vs identity pool? · PNG download करा · Card page उघडा
मुलाखत card: MFA का?. Password-only = weak. TOTP/WebAuthn > SMS. MFA ON.
मुलाखत card: MFA का? · PNG download करा · Card page उघडा
मुलाखत card: JWT वर काय verify?. sig/iss/aud/exp. No blind trust. APIGW authorizer.
मुलाखत card: JWT वर काय verify? · PNG download करा · Card page उघडा
मुलाखत card: Public vs confidential client?. Public=no secret; confidential=secret. PKCE for public. SPA vs backend.
मुलाखत card: Public vs confidential client? · PNG download करा · Card page उघडा

अजून cards: Ravi Sir's Cards.

सराव Tasks

या scenario बद्दल

Nairobi Ride हा नैरोबी मधला वाहतूक व्यवसाय आहे. Wanjiru Kamau त्यांचं IT व cloud काम पाहतात. त्यांचे पैसे KES मध्ये मोजले जातात आणि AWS resources af-south-1 Region मध्ये चालतात. खालच्या tasks मध्ये तुम्ही या lesson मध्ये शिकलेलं वापरून त्यांची खरी कामं करता. सगळी नावं, account IDs, IP addresses व numbers सरावासाठी काल्पनिक आहेत.

0 / 16

सोपं User pools

का: Auth.

काय करायचं: User pools.

कसं करायचं:
  1. Task वाचा आणि ते कोणत्या AWS service बद्दल आहे ते ठरवा.
  2. aws लिहा, मग service चं नाव, मग operation (action शब्द).
  3. प्रत्येक आवश्यक flag (--name) व त्यापुढे task मधली value लिहा.
  4. Flags कोणत्याही क्रमाने चालतात. Check answer दाबा.

सोपं Describe pool

का: MFA.

काय करायचं: nairobiridepool describe.

कसं करायचं:
  1. Task वाचा आणि ते कोणत्या AWS service बद्दल आहे ते ठरवा.
  2. aws लिहा, मग service चं नाव, मग operation (action शब्द).
  3. प्रत्येक आवश्यक flag (--name) व त्यापुढे task मधली value लिहा.
  4. Flags कोणत्याही क्रमाने चालतात. Check answer दाबा.

सोपं Resource servers

का: Scopes.

काय करायचं: nairobiridepool resource servers.

कसं करायचं:
  1. Task वाचा आणि ते कोणत्या AWS service बद्दल आहे ते ठरवा.
  2. aws लिहा, मग service चं नाव, मग operation (action शब्द).
  3. प्रत्येक आवश्यक flag (--name) व त्यापुढे task मधली value लिहा.
  4. Flags कोणत्याही क्रमाने चालतात. Check answer दाबा.

सोपं User pool

का: AuthN.

काय करायचं: User pool तर 1.

कसं करायचं:
  1. Task मधले numbers लिहून घ्या.
  2. कागदावर step by step काढा.
  3. Box मध्ये फक्त final उत्तर लिहा.
  4. Check answer दाबा.

सोपं Id pool

का: Creds.

काय करायचं: Id pool तर 1.

कसं करायचं:
  1. Task मधले numbers लिहून घ्या.
  2. कागदावर step by step काढा.
  3. Box मध्ये फक्त final उत्तर लिहा.
  4. Check answer दाबा.

मध्यम Clients

का: Clients.

काय करायचं: nairobiridepool clients.

कसं करायचं:
  1. Task वाचा आणि ते कोणत्या AWS service बद्दल आहे ते ठरवा.
  2. aws लिहा, मग service चं नाव, मग operation (action शब्द).
  3. प्रत्येक आवश्यक flag (--name) व त्यापुढे task मधली value लिहा.
  4. Flags कोणत्याही क्रमाने चालतात. Check answer दाबा.

मध्यम Groups

का: AuthZ.

काय करायचं: nairobiridepool groups.

कसं करायचं:
  1. Task वाचा आणि ते कोणत्या AWS service बद्दल आहे ते ठरवा.
  2. aws लिहा, मग service चं नाव, मग operation (action शब्द).
  3. प्रत्येक आवश्यक flag (--name) व त्यापुढे task मधली value लिहा.
  4. Flags कोणत्याही क्रमाने चालतात. Check answer दाबा.

मध्यम Identity pools

का: Creds.

काय करायचं: Identity pools.

कसं करायचं:
  1. Task वाचा आणि ते कोणत्या AWS service बद्दल आहे ते ठरवा.
  2. aws लिहा, मग service चं नाव, मग operation (action शब्द).
  3. प्रत्येक आवश्यक flag (--name) व त्यापुढे task मधली value लिहा.
  4. Flags कोणत्याही क्रमाने चालतात. Check answer दाबा.

मध्यम GetId

का: Mobile.

काय करायचं: GetId identity pool.

कसं करायचं:
  1. { "Version": "2012-10-17", "Statement": [ ... ] } ने सुरू करा.
  2. प्रत्येक statement मध्ये Effect, Action व Resource लिहा.
  3. Task ला लागेल तेवढंच द्या (least privilege).
  4. Double quotes व commas नीट वापरा. Check answer दाबा.

मध्यम MFA

का: Security.

काय करायचं: MfaConfiguration ON.

कसं करायचं:
  1. Task मधल्या top-level keys पासून सुरू करा.
  2. Child keys 2 spaces ने indent करा (tabs नकोत).
  3. प्रत्येक property मध्ये task मधली value भरा.
  4. Check answer दाबा. Keys चा क्रम महत्त्वाचा नाही.

मध्यम JWT

का: API.

काय करायचं: JWT तर 1.

कसं करायचं:
  1. Task मधले numbers लिहून घ्या.
  2. कागदावर step by step काढा.
  3. Box मध्ये फक्त final उत्तर लिहा.
  4. Check answer दाबा.

मध्यम TTL

का: Life.

काय करायचं: Minutes?

कसं करायचं:
  1. Task मधले numbers लिहून घ्या.
  2. कागदावर step by step काढा.
  3. Box मध्ये फक्त final उत्तर लिहा.
  4. Check answer दाबा.

अवघड IdPs

का: Federation.

काय करायचं: nairobiridepool IdPs.

कसं करायचं:
  1. Task वाचा आणि ते कोणत्या AWS service बद्दल आहे ते ठरवा.
  2. aws लिहा, मग service चं नाव, मग operation (action शब्द).
  3. प्रत्येक आवश्यक flag (--name) व त्यापुढे task मधली value लिहा.
  4. Flags कोणत्याही क्रमाने चालतात. Check answer दाबा.

अवघड Users

का: Directory.

काय करायचं: nairobiridepool users.

कसं करायचं:
  1. Task वाचा आणि ते कोणत्या AWS service बद्दल आहे ते ठरवा.
  2. aws लिहा, मग service चं नाव, मग operation (action शब्द).
  3. प्रत्येक आवश्यक flag (--name) व त्यापुढे task मधली value लिहा.
  4. Flags कोणत्याही क्रमाने चालतात. Check answer दाबा.

अवघड AdminGetUser

का: Support.

काय करायचं: AdminGetUser pool.

कसं करायचं:
  1. { "Version": "2012-10-17", "Statement": [ ... ] } ने सुरू करा.
  2. प्रत्येक statement मध्ये Effect, Action व Resource लिहा.
  3. Task ला लागेल तेवढंच द्या (least privilege).
  4. Double quotes व commas नीट वापरा. Check answer दाबा.

अवघड Auth flows

का: SRPA.

काय करायचं: ExplicitAuthFlows USER_SRP_AUTH.

कसं करायचं:
  1. Task मधल्या top-level keys पासून सुरू करा.
  2. Child keys 2 spaces ने indent करा (tabs नकोत).
  3. प्रत्येक property मध्ये task मधली value भरा.
  4. Check answer दाबा. Keys चा क्रम महत्त्वाचा नाही.