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 /login
cu body{"username": "admin", "password": "parola123"}
Pasul 2: Acces la ruta protejată
-
GET /protected
cu 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?