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 pool | AuthN + tokens |
| App client | Client settings |
| Hosted UI | Ready login |
| Identity pool | Token→IAM |
| JWT authorizer | API validates |
| Triggers | Lambda hooks |
4. सुरक्षित app client
कसं करायचं (step by step)
- User pool + password/MFA.
- App client; PKCE; no secret in SPA.
- Tight callback URLs.
- Social/SAML review.
- JWT authorizer.
- Identity Pool prefix IAM.
- Server-side authorize.
- Refresh/revoke.
- Advanced security.
- 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 pool | Customer AuthN |
| Identity pool | App AWS creds |
| IDC | Workforce SSO |
| AVP | Fine 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)
- User pool email.
- App client callback.
- Hosted UI + inspect JWT.
- Optional Identity Pool.
- JWT authorizer mindset.
Cleanup (billing थांबवा)
- Delete pools/roles.
- Callbacks clean.
9. सामान्य errors आणि fixes
प्रत्येक row = खरी चूक. Panic करण्याआधी fix वाचा.
| Error / लक्षण | Fix |
|---|---|
| Secret in React | PKCE public. |
| Callback * | Exact URLs. |
| Client-only trust | API verify. |
| Admin role | Least privilege. |
| Pools confuse | Tokens vs creds. |
| Revoke ignore | Logout design. |
| MFA off | Enable MFA. |
| Challenge mishandle | Handle challenges. |
| PII attributes | Consent. |
| Long access token | Short exp. |
10. Troubleshooting checklist
- Callback mismatch.
- Auth flows.
- CORS.
- Trust mapping.
- aud/iss.
- 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।
घरी करून बघा
- User pool→JWT→APIG draw.
- Prefix-by-sub IAM sketch.
- 3 callback mistakes.
थोडक्यात सांगायचं तर
- User pool = JWT AuthN.
- Identity pool = IAM.
- PKCE + API verify.
- Least privilege.
उजळणी, मुलाखत आणि तुलना cards
हा lesson काही मिनिटांत revise करा. Cards phone वर save करा किंवा PNG download करा. प्रत्येक card वरचा QR हा lesson उघडतो.








अजून cards: Ravi Sir's Cards.
सराव Tasks
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.
- Task वाचा आणि ते कोणत्या AWS service बद्दल आहे ते ठरवा.
- aws लिहा, मग service चं नाव, मग operation (action शब्द).
- प्रत्येक आवश्यक flag (--name) व त्यापुढे task मधली value लिहा.
- Flags कोणत्याही क्रमाने चालतात. Check answer दाबा.
सोपं Describe pool
का: MFA.
काय करायचं: nairobiridepool describe.
- Task वाचा आणि ते कोणत्या AWS service बद्दल आहे ते ठरवा.
- aws लिहा, मग service चं नाव, मग operation (action शब्द).
- प्रत्येक आवश्यक flag (--name) व त्यापुढे task मधली value लिहा.
- Flags कोणत्याही क्रमाने चालतात. Check answer दाबा.
सोपं Resource servers
का: Scopes.
काय करायचं: nairobiridepool resource servers.
- Task वाचा आणि ते कोणत्या AWS service बद्दल आहे ते ठरवा.
- aws लिहा, मग service चं नाव, मग operation (action शब्द).
- प्रत्येक आवश्यक flag (--name) व त्यापुढे task मधली value लिहा.
- Flags कोणत्याही क्रमाने चालतात. Check answer दाबा.
सोपं User pool
का: AuthN.
काय करायचं: User pool तर 1.
- Task मधले numbers लिहून घ्या.
- कागदावर step by step काढा.
- Box मध्ये फक्त final उत्तर लिहा.
- Check answer दाबा.
सोपं Id pool
का: Creds.
काय करायचं: Id pool तर 1.
- Task मधले numbers लिहून घ्या.
- कागदावर step by step काढा.
- Box मध्ये फक्त final उत्तर लिहा.
- Check answer दाबा.
मध्यम Clients
का: Clients.
काय करायचं: nairobiridepool clients.
- Task वाचा आणि ते कोणत्या AWS service बद्दल आहे ते ठरवा.
- aws लिहा, मग service चं नाव, मग operation (action शब्द).
- प्रत्येक आवश्यक flag (--name) व त्यापुढे task मधली value लिहा.
- Flags कोणत्याही क्रमाने चालतात. Check answer दाबा.
मध्यम Groups
का: AuthZ.
काय करायचं: nairobiridepool groups.
- Task वाचा आणि ते कोणत्या AWS service बद्दल आहे ते ठरवा.
- aws लिहा, मग service चं नाव, मग operation (action शब्द).
- प्रत्येक आवश्यक flag (--name) व त्यापुढे task मधली value लिहा.
- Flags कोणत्याही क्रमाने चालतात. Check answer दाबा.
मध्यम Identity pools
का: Creds.
काय करायचं: Identity pools.
- Task वाचा आणि ते कोणत्या AWS service बद्दल आहे ते ठरवा.
- aws लिहा, मग service चं नाव, मग operation (action शब्द).
- प्रत्येक आवश्यक flag (--name) व त्यापुढे task मधली value लिहा.
- Flags कोणत्याही क्रमाने चालतात. Check answer दाबा.
मध्यम GetId
का: Mobile.
काय करायचं: GetId identity pool.
- { "Version": "2012-10-17", "Statement": [ ... ] } ने सुरू करा.
- प्रत्येक statement मध्ये Effect, Action व Resource लिहा.
- Task ला लागेल तेवढंच द्या (least privilege).
- Double quotes व commas नीट वापरा. Check answer दाबा.
मध्यम MFA
का: Security.
काय करायचं: MfaConfiguration ON.
- Task मधल्या top-level keys पासून सुरू करा.
- Child keys 2 spaces ने indent करा (tabs नकोत).
- प्रत्येक property मध्ये task मधली value भरा.
- Check answer दाबा. Keys चा क्रम महत्त्वाचा नाही.
मध्यम JWT
का: API.
काय करायचं: JWT तर 1.
- Task मधले numbers लिहून घ्या.
- कागदावर step by step काढा.
- Box मध्ये फक्त final उत्तर लिहा.
- Check answer दाबा.
मध्यम TTL
का: Life.
काय करायचं: Minutes?
- Task मधले numbers लिहून घ्या.
- कागदावर step by step काढा.
- Box मध्ये फक्त final उत्तर लिहा.
- Check answer दाबा.
अवघड IdPs
का: Federation.
काय करायचं: nairobiridepool IdPs.
- Task वाचा आणि ते कोणत्या AWS service बद्दल आहे ते ठरवा.
- aws लिहा, मग service चं नाव, मग operation (action शब्द).
- प्रत्येक आवश्यक flag (--name) व त्यापुढे task मधली value लिहा.
- Flags कोणत्याही क्रमाने चालतात. Check answer दाबा.
अवघड Users
का: Directory.
काय करायचं: nairobiridepool users.
- Task वाचा आणि ते कोणत्या AWS service बद्दल आहे ते ठरवा.
- aws लिहा, मग service चं नाव, मग operation (action शब्द).
- प्रत्येक आवश्यक flag (--name) व त्यापुढे task मधली value लिहा.
- Flags कोणत्याही क्रमाने चालतात. Check answer दाबा.
अवघड AdminGetUser
का: Support.
काय करायचं: AdminGetUser pool.
- { "Version": "2012-10-17", "Statement": [ ... ] } ने सुरू करा.
- प्रत्येक statement मध्ये Effect, Action व Resource लिहा.
- Task ला लागेल तेवढंच द्या (least privilege).
- Double quotes व commas नीट वापरा. Check answer दाबा.
अवघड Auth flows
का: SRPA.
काय करायचं: ExplicitAuthFlows USER_SRP_AUTH.
- Task मधल्या top-level keys पासून सुरू करा.
- Child keys 2 spaces ने indent करा (tabs नकोत).
- प्रत्येक property मध्ये task मधली value भरा.
- Check answer दाबा. Keys चा क्रम महत्त्वाचा नाही.