Situatie
O aplicație web modernă trebuie să asigure:
-
Autentificare sigură (login)
-
Autorizare granulară (ce are voie să facă utilizatorul)
-
Protejarea resurselor sensibile
Cele mai utilizate standarde pentru asta sunt:
-
OAuth 2.0 – pentru autorizare între aplicații
-
JWT (JSON Web Tokens) – pentru transportul securizat al informațiilor de identitate.
Solutie
Diferențiere concepte
| Concept | Descriere succintă |
|---|---|
| Autentificare | Confirmă cine ești (ești tu?) |
| Autorizare | Decide ce poți face (ai voie să vezi/faci X?) |
| OAuth 2.0 | Protocol pentru delegarea accesului |
| JWT | Format de token semnat digital (autentificare) |
Scenariu de lucru
Obiectiv:
Securizăm o aplicație RESTful cu:
-
Login cu nume și parolă
-
Obținere token JWT
-
Acces la rute protejate doar dacă tokenul este valid
Arhitectura generală
Pași de implementare (FastAPI + JWT)
Pasul 1: Instalare pachete
Pasul 2: Generare token JWT
Pasul 3: Login și emitere token
Pasul 4: Verificarea tokenului pe rute protejate
Testare cu Postman sau curl
Pasul 1: Login
-
POST /logincu body{"username": "admin", "password": "parola123"}
Pasul 2: Acces la ruta protejată
-
GET /protectedcu header:Authorization: Bearer <token primit>
Bune practici de securitate
| Bună practică | Motiv |
|---|---|
| Expirare tokenuri | Limitarea duratei de acces |
| Reîmprospătare tokenuri | Refresh token separat pentru sesiunile lungi |
| HTTPS obligatoriu | Previne interceptarea tokenurilor |
| Salvare token doar în memorie | Nu în localStorage (XSS!) |
| Semnături robuste | Folosește chei lungi și algoritmi siguri |
Extensii și aplicații avansate
| Extensie | Descriere |
|---|---|
| OAuth2 cu Google/Facebook | Login prin rețele sociale (delegare reală) |
| Role-based access control | Permisiuni pe roluri: admin, user, guest |
| API Gateway + Auth | JWT verificat de gateway (ex: Kong, AWS API GW) |
| OpenID Connect | Extensie OAuth 2.0 pentru autentificare completă |
Leave A Comment?