Amazon Cognito
Security Cloud Practitioner Solutions Architect Associate

Amazon Cognito

Amazon Cognito

Autentykacja i autoryzacja uzytkownikow w chmurze AWS. Logowanie, rejestracja, social login (Google, Apple, Facebook), MFA i federacja tozsamosci - bez budowania wlasnego systemu auth.

Amazon Cognito to w pelni zarzadzana usluga autentykacji i autoryzacji, ktora pozwala dodac logowanie, rejestracje i kontrole dostepu do Twoich aplikacji webowych i mobilnych. Zamiast budowac wlasny system uwierzytelniania od zera, dostajesz gotowe rozwiazanie z User Pools (baza uzytkownikow) i Identity Pools (federacja tozsamosci).

Cognito obsluguje social login (Google, Apple, Facebook), standardy SAML 2.0 i OpenID Connect (OIDC), wieloskladnikowe uwierzytelnianie (MFA) oraz gotowy Hosted UI z formularzami logowania. Skaluje sie do milionow uzytkownikow i integruje z API Gateway, Lambda i innymi serwisami AWS.

Czy wiesz, ze...

Cognito obsluguje do 40 mln MAU na jeden User Pool. Amazon.com, Disney+ i wiele firm z listy Fortune 500 korzysta z Cognito. Funkcja Advanced Security wykrywa skompromitowane hasla, sprawdzajac je w czasie rzeczywistym z bazami danych wyciekow.

Pro Tip

Uzyj Cognito User Pools + Identity Pools razem: User Pools uwierzytelnia (JWT), Identity Pools wymienia JWT na tymczasowe credentials AWS. Dzieki temu Twoj frontend moze bezposrednio uploadowac do S3 lub odpytywac DynamoDB bez posrednictwa backendu. Zawsze wlaczaj Advanced Security ($0.050/MAU) dla produkcyjnych aplikacji - wykrywa credential stuffing i brute force.

Uwaga

Cognito Hosted UI jest funkcjonalne, ale ograniczone w kastomizacji. Jesli Twoja marka wymaga pixel-perfect strony logowania, uzyj Cognito API z wlasnym frontendem. Pamietaj tez: Cognito ma twardy limit 40 atrybutow niestandardowych na uzytkownika - zaplanuj schemat z wyprzedzeniem.

Amazon Cognito zapewnia uwierzytelnianie, autoryzacje i zarzadzanie uzytkownikami dla aplikacji webowych i mobilnych. User Pool przechowuje uzytkownikow, a Identity Pool nadaje tymczasowe poswiadczenia AWS.

1

Tworzenie User Pool

Definiujesz atrybuty uzytkownika (email, telefon, custom attributes), polityki hasel (min. 8 znakow, wielkie litery, cyfry, znaki specjalne) i metody weryfikacji (email/SMS). User Pool obsluguje do 40 milionow uzytkownikow.

2

Konfiguracja sign-up i sign-in

Okreslasz flow logowania - email+haslo, telefon+haslo, username+haslo lub federacja z Google/Facebook/SAML. Konfigurujesz MFA (TOTP, SMS), password recovery i account verification.

3

Dodanie App Client

App Client to identyfikator aplikacji (client ID) z konfiguracja OAuth 2.0 - grant types (authorization code, implicit), scopes, callback URLs. Mozesz miec wiele App Clients dla roznych platform (web, iOS, Android).

4

Integracja SDK w aplikacji

Uzywasz AWS Amplify, amazon-cognito-identity-js lub dowolnego klienta OIDC. SDK obsluguje rejestracje, logowanie, odswiezanie tokenow i wylogowanie. Hosted UI zapewnia gotowy interfejs bez pisania frontendu.

5

Walidacja tokenow JWT

Po zalogowaniu Cognito zwraca 3 tokeny JWT - ID token (dane uzytkownika), Access token (uprawnienia) i Refresh token (odswiezanie, wazny do 10 lat). Backend weryfikuje podpis JWT uzywajac publicznych kluczy JWKS endpoint.

6

Identity Pool (opcjonalnie)

Identity Pool wymienia tokeny Cognito (lub Google/Facebook) na tymczasowe poswiadczenia AWS (STS). Uzytkownik moze bezposrednio korzystac z S3, DynamoDB i innych serwisow AWS z uprawnieniami przypisanymi do IAM Role.

Cognito to potezny serwis auth, ale ma specyficzne zachowania, ktore moga zaskoczyc. Te wskazowki pomoga Ci zbudowac bezpieczny i przyjazny system logowania.

Hosted UI vs custom UI

Hosted UI to gotowy interfejs logowania/rejestracji hostowany przez AWS. Szybki start, ale ograniczona personalizacja (CSS). Custom UI z Amplify daje pelna kontrole nad wyglarem, ale wymaga wiecej kodu. Zacznij od Hosted UI, migruj pozniej.

Poczatkujacy

Federacja z social IdP

Integracja z Google, Facebook, Apple i SAML/OIDC providerami. Cognito automatycznie mapuje atrybuty (email, name) i laczy konta. Uwaga - user pool attribute mapping musi byc skonfigurowany przed pierwszym logowaniem federowanym.

Poczatkujacy

Lambda Triggers - customizacja flow

Lambda triggers pozwalaja wstrzyknac logike w kazdy etap - Pre Sign-up (walidacja), Post Confirmation (welcome email), Pre Token Generation (custom claims), Pre Authentication (dodatkowe sprawdzenia). Max timeout 5 sekund per trigger.

Zaawansowany

Advanced Security Features

Wlacz Advanced Security ($0.050/MAU) dla adaptive authentication - Cognito analizuje ryzyko logowania (nowe urzadzenie, lokalizacja, IP) i wymusza MFA lub blokuje podejrzane proby. Wykrywa credential stuffing i brute force.

Zaawansowany

Customizacja tokenow JWT

Pre Token Generation Lambda trigger pozwala dodac custom claims do ID i Access tokenow (np. role, permissions, tenant_id). Unikaj duzych payloadow - tokeny sa przesylane w kazdym requeiscie. Limit to 11000 znakow w custom claims.

Zaawansowany

Migracja z istniejacego systemu auth

User Migration Lambda trigger pozwala na bezszwowa migracje - przy pierwszym logowaniu Cognito wywoluje Twoja Lambda, ktora weryfikuje credentials w starym systemie i tworzy uzytkownika w User Pool. Uzytkownicy nie zauwaza zmiany.

Poczatkujacy

Screenshoty z AWS Console

Wkrotce pojawia sie tu zrzuty ekranu pokazujace jak korzystac z Amazon Cognito bezposrednio w konsoli AWS.

Do czego sluzy Amazon Cognito?

01

Autentykacja aplikacji webowej

Dodaj rejestracje, logowanie, reset hasla i MFA do swojej aplikacji. Cognito Hosted UI daje gotowe formularze, a JWT tokeny autoryzuja zapytania do API.

02

Social login

Pozwol uzytkownikom logowac sie przez Google, Apple, Facebook lub dowolnego dostawce OIDC/SAML. Bez pisania wlasnej integracji OAuth.

03

Autoryzacja dostepu do AWS

Identity Pools zamieniaja token Cognito na tymczasowe credentials AWS. Uzytkownik mobilny moze np. wrzucac pliki bezposrednio do S3.

04

Aplikacje korporacyjne (SSO)

Integracja z firmowym Active Directory lub Okta przez SAML 2.0. Pracownicy loguja sie jednym kontem do wszystkich aplikacji.

Co musisz wiedziec?

User Pool

Katalog uzytkownikow w Cognito. Obsluguje rejestracje, logowanie, MFA, weryfikacje email/telefonu. Wydaje tokeny JWT (ID, Access, Refresh).

Identity Pool

Zamienia tokeny z User Pool (lub zewnetrznego dostawcy) na tymczasowe credentials AWS (STS). Pozwala uzytkownikowi aplikacji na bezposredni dostep do serwisow AWS.

Hosted UI

Gotowy interfejs logowania hostowany przez Cognito. Obsluguje rejestracje, logowanie, reset hasla i social login. Mozesz go dostosowac (logo, kolory) lub uzyc wlasnego UI.

JWT Token

JSON Web Token wydawany po udanym logowaniu. ID Token zawiera dane uzytkownika, Access Token autoryzuje dostep do API, Refresh Token odnawia sesje.

MFA (Multi-Factor Authentication)

Wieloskladnikowe uwierzytelnianie - dodatkowy krok bezpieczenstwa. Cognito obsluguje SMS, TOTP (aplikacje typu Google Authenticator) oraz klucze FIDO2.

User Groups

Grupy uzytkownikow w User Pool (np. admin, editor, viewer). Kazda grupa moze miec przypisana role IAM - ulatwia zarzadzanie uprawnieniami.

Uwierzytelnianie aplikacji webowej z Cognito

Architektura uwierzytelniania i autoryzacji z Cognito User Pool, walidacja JWT w API Gateway i opcjonalna federacja z external identity providerami.

Aplikacja kliencka SPA (React/Vue) lub aplikacja mobilna z Amplify SDK
JWT tokens
Amazon Cognito
Amazon Cognito User Pool z MFA, password policies i Lambda triggers
Authorized request
API Gateway
API Gateway Cognito Authorizer waliduje JWT i przekazuje claims do backendu
AWS Lambda
AWS Lambda Backend logic z dostepem do claims uzytkownika z tokena
Google / Facebook IdP Zewnetrzni dostawcy tozsamosci dla social login
Cognito User Pool obsluguje do 40 mln uzytkownikow z SLA 99.9% - skaluje sie automatycznie.
API Gateway Cognito Authorizer waliduje JWT bez dodatkowego kodu - zero Lambda invocations dla auth.
Refresh token moze byc wazny od 1 godziny do 10 lat - ustaw krotszy okres dla aplikacji o wyzszych wymaganiach bezpieczenstwa.

Porownanie User Pools vs Identity Pools

Cecha User Pools Identity Pools
Glowna funkcja Autentykacja (kto to jest?) Autoryzacja (co moze robic w AWS?)
Wynik JWT tokeny (ID + Access) Tymczasowe AWS credentials
Social login Google, Apple, Facebook, SAML Przez User Pools lub bezposrednio
Custom UI Hosted UI lub wlasna N/A (nie ma UI)
MFA Tak (SMS, TOTP, e-mail) N/A
Pricing Per MAU Darmowe (placisz za STS)
Najlepszy dla Logowanie uzytkownikow do aplikacji Dostep do S3, DynamoDB z frontend

Ile kosztuje Amazon Cognito?

User Pool - MAU

Placisz za Monthly Active Users (MAU) - uzytkownikow, ktorzy sie loguja w danym miesiacu.

Essentials (domyslny tier): $0.015/MAU po przekroczeniu 10 000 darmowych MAU (Lite: od $0.0055/MAU)

Social/SAML login

Logowanie przez dostawcow zewnetrznych (Google, Facebook, SAML) ma inna cene.

SAML/OIDC: $0.015/MAU

Zaawansowane bezpieczenstwo

Opcjonalne funkcje: adaptive authentication, wykrywanie skompromitowanych hasel.

$0.050/MAU za Advanced Security Features

Free Tier

Cognito User Pool: 10 000 MAU za darmo miesiecznie (tier Essentials, logowanie bezposrednie). Identity Pool: zawsze darmowy.

50 000 aktywnych uzytkownikow/mies. za darmo!

Przyklady AWS CLI

Utworz User Pool

Tworzy nowy User Pool z weryfikacja email i polityka hasel

aws cognito-idp create-user-pool \
 --pool-name MojaAplikacjaUsers \
 --auto-verified-attributes email \
 --username-attributes email \
 --mfa-configuration OPTIONAL \
 --policies '{"PasswordPolicy":{"MinimumLength":8,"RequireUppercase":true,"RequireLowercase":true,"RequireNumbers":true,"RequireSymbols":false}}'

Utworz App Client

Tworzy klienta aplikacji do integracji z User Pool

aws cognito-idp create-user-pool-client \
 --user-pool-id eu-central-1_AbCdEfGh \
 --client-name MojaAplikacjaWeb \
 --explicit-auth-flows ALLOW_USER_PASSWORD_AUTH ALLOW_REFRESH_TOKEN_AUTH \
 --supported-identity-providers COGNITO

Zarejestruj uzytkownika

Rejestruje nowego uzytkownika w User Pool

aws cognito-idp sign-up \
 --client-id 1abc2defgh3ijklmno4pqrs \
 --username [email protected] \
 --password MojeHaslo123! \
 --user-attributes Name=email,[email protected] Name=name,Value="Jan Kowalski"

Lista uzytkownikow

Wyswietla liste uzytkownikow w User Pool

aws cognito-idp list-users \
 --user-pool-id eu-central-1_AbCdEfGh \
 --query "Users[].{Email:Attributes[?Name=='email'].Value|[0],Status:UserStatus,Utworzony:UserCreateDate}" \
 --output table

Quiz: Amazon Cognito

Sprawdz czy dobrze rozumiesz podstawy. Kliknij odpowiedz — feedback pojawi sie od razu.

Twoj wynik: 0 / 4

1. Jaka jest roznica miedzy User Pool a Identity Pool w Cognito?

2. Ile MAU (Monthly Active Users) obejmuje Free Tier Cognito User Pool?

3. Jakie typy tokenow JWT wydaje Cognito po udanym logowaniu?

4. Ktory standard Cognito obsluguje do integracji z firmowym Active Directory?

Chcesz poznac Amazon Cognito w praktyce?

Darmowy kurs "AWS od podstaw" pokazuje jak uzywac Amazon Cognito krok po kroku. Teoria + praktyka od zera.

Zacznij darmowy kurs Wszystkie serwisy