Autentikáció és jogosultságkezelés
Authentication vs authorization: mi a különbség az azonosítás és az engedélyezés között, és miért kell az authz-t minden érzékeny erőforrásnál ellenőrizni?
Röviden
Az autentikáció azt válaszolja meg, ki a felhasználó. Az autorizáció vagy jogosultságkezelés azt, hogy az adott azonosított szereplő hozzáférhet-e egy konkrét művelethez vagy adathoz. A kettő egymásra épül, de nem helyettesíti egymást.
Mit jelent a autentikáció és jogosultságkezelés?
Az autentikáció azt válaszolja meg, ki a felhasználó. Az autorizáció vagy jogosultságkezelés azt, hogy az adott azonosított szereplő hozzáférhet-e egy konkrét művelethez vagy adathoz. A kettő egymásra épül, de nem helyettesíti egymást.
AuthN → AuthZ
01
Ki vagy?
02
Session
03
Melyik erőforrás?
04
Mit tehetsz?
05
Allow / deny
Hogyan működik a gyakorlatban?
Egy biztonságos backend nem abból indul ki, hogy ha valaki be van jelentkezve, akkor minden sajátként megadott ID-hoz hozzáférhet. A szervernek vagy az adatbázisnak a hitelesített identitás és az erőforrás kapcsolata alapján kell dönteni.
- Object-level jogosultság: ez a user hozzáférhet ehhez a konkrét rekordhoz?
- Function-level jogosultság: meghívhatja ezt az admin műveletet?
- Role/permission önmagában gyakran kevés tulajdonosi szabály nélkül.
- Default deny biztonságosabb alap, mint az utólagos tiltólista.
Gyakorlati fejlesztői szemlélet
API endpointnál ne csak `isLoggedIn` ellenőrzést írj. Fogalmazd meg explicit módon az üzleti szabályt: például a projekt tulajdonosa vagy meghívott szerkesztő módosíthatja, más nem.
Gyakori hibák és félreértések
- Frontend route guardot szerveroldali authz helyett használni.
- Felhasználótól kapott userId-t igazságnak tekinteni.
- Admin flaget kliensoldali localStorage-ból eldönteni.
Források és szabványok
A technikai részletekhez elsődleges szabványokat és karbantartott hivatalos dokumentációt használok. Frameworkök, böngészők és webes API-k idővel változhatnak, ezért implementálás előtt mindig ellenőrizd az aktuális dokumentációt is.
Kapcsolódó ByBence Academy