Tieto dva pojmy sa neustále zamieňajú a práve v tejto zámene žijú bezpečnostné chyby. To, že je používateľ prihlásený (autentifikovaný), nič nehovorí o tom, ku ktorým záznamom, akciám alebo účtom by sa mal dostať (autorizácia).
Kde sa čo deje
| Oblasť | Autentifikácia | Autorizácia |
|---|---|---|
| Otázka, na ktorú odpovedá | Kto je toto? | Čo môže robiť? |
| Kedy prebieha | Raz, pri prihlásení (plus validácia session) | Pri každej citlivej požiadavke |
| Bežné mechanizmy | Heslo + hash, magic link, OAuth/SSO, MFA | Role, oprávnenia, kontroly vlastníctva, policy |
| Zlyhanie | Vydávanie sa za niekoho iného, credential stuffing | Únik dát medzi účtami, eskalácia oprávnení |
Bežné autentifikačné vzory
- Heslo + bezpečný hashing — stále štandard, vyžaduje správny hashing (bcrypt/argon2), rate limiting a validáciu voči únikom
- Magic links / jednorazové kódy — odstraňuje správu hesiel, vhodné pre nízko-frikčné B2B a portálové prihlásenia
- OAuth / SSO — deleguje identitu na dôveryhodného poskytovateľa (Google, Microsoft, podnikový IdP); znižuje rozptýlenie hesiel pre B2B softvér
- Multi-factor autentifikácia (MFA) — pridaný faktor nad rámec niečoho, čo poznáte; štandard pre admin a finančný prístup
Bežné autorizačné vzory
- Role-based access control (RBAC) — oprávnenia pripojené k rolám, role pripojené k používateľom; dobre sa škáluje pre interné nástroje a B2B produkty
- Attribute-based access control (ABAC) — oprávnenia počítané z atribútov (oddelenie, región, projekt) namiesto fixných rolí; flexibilnejšie, komplexnejšie
- Kontroly založené na vlastníctve — používateľ môže konať na zdroji len ak ho vlastní alebo patrí do jeho účtu; predvolený vzor pre klientske portály a multi-tenant SaaS
// Wrong: trusts an ID supplied by the client
async function getInvoice(invoiceId: string, accountId: string) {
return db.invoice.findFirst({ where: { id: invoiceId, accountId } });
}
// Right: derives the account from the authenticated session
async function getInvoice(invoiceId: string, session: Session) {
return db.invoice.findFirst({
where: { id: invoiceId, accountId: session.accountId },
});
}
Praktický checklist
Oddeľte tieto dve oblasti v kóde
Autentifikačný middleware potvrdí identitu a pripojí session. Autorizačné kontroly bežia explicitne na úrovni zdroja, nikdy sa nepredpokladajú len z roly.
Obmedzte každý dopyt podľa autentifikovanej session
Nikdy neprijímajte účet, tenant alebo ID vlastníka zo vstupu klienta pre rozhodnutia o prístupe.
Zvoľte najprv RBAC, ABAC pridajte, až keď role prestanú sedieť
Väčšina produktov nikdy nevyrastie z rolí. Pravidlá založené na atribútoch pridávajú skutočnú zložitosť; zaslúžte si ju predtým, než ju pridáte.
Logujte zlyhania autorizácie
Opakované zlyhania autorizácie z jedného účtu sú signál, na ktorý sa oplatí upozorňovať, nie ho ticho ignorovať.
FAQ
FAQ
Aký je rozdiel medzi autentifikáciou a autorizáciou?+
Autentifikácia overuje identitu: potvrdzuje, že používateľ je ten, za koho sa vydáva, zvyčajne cez heslo, magic link alebo SSO. Autorizácia nastáva potom a určuje, čo autentifikovaný používateľ smie vidieť alebo robiť.
Môže existovať autorizácia bez autentifikácie?+
Nie zmysluplne. Rozhodnutia o autorizácii závisia od toho, že vieme, kto požiadavku posiela. Bez autentifikácie môže systém aplikovať na každého len rovnaký verejný prístup.
Čo je role-based access control (RBAC)?+
RBAC je autorizačný model, ktorý priraďuje oprávnenia rolám (admin, editor, viewer) namiesto jednotlivých používateľov, a potom priraďuje používateľov k rolám. Škáluje sa lepšie než oprávnenia na úrovni jednotlivca s rastúcim tímom alebo zákazníckou základňou.
Súvisiace zdroje
Technický dlh: ako ho identifikovať, merať a splácať
Praktická definícia technického dlhu, ako odlíšiť vedomé kompromisy od náhodného úpadku, a opakovateľný proces na jeho splácanie bez zastavenia práce na funkciách.
EngineeringArchitektúra webu vysvetlená: vrstvy, vzory a ako si vybrať tú správnu
Čo architektúra webu skutočne znamená, aké vrstvy zahŕňa, hlavné vzory používané dnes a praktický rámec na výber toho správneho podľa reálnych obmedzení.
EngineeringČo je klientsky portál? Definícia, architektúra a kedy ho potrebujete
Jasná definícia klientskych portálov, ako sa líšia od webov a SaaS produktov, a architektonické rozhodnutia, na ktorých záleží pri bezpečnej B2B dodávke.
Newsletter
Produktové poznámky, nie spam.
Občasné frameworky o portáloch, SaaS MVP a automatizácii.