Engineeringarticle9 min čítania

Autentifikácia vs autorizácia: architektonické vzory pre webové aplikácie

Autentifikácia dokazuje, kto niekto je. Autorizácia rozhoduje, čo môže robiť. Jasný rozklad oboch, bežné vzory a ako sa vyhnúť chybám, ktoré vedú k bezpečnostným incidentom.

Autor Bohdan SulymaPublikované

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áciaAutorizácia
Otázka, na ktorú odpovedáKto je toto?Čo môže robiť?
Kedy prebiehaRaz, pri prihlásení (plus validácia session)Pri každej citlivej požiadavke
Bežné mechanizmyHeslo + hash, magic link, OAuth/SSO, MFARole, oprávnenia, kontroly vlastníctva, policy
ZlyhanieVydá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

  1. 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.

  2. 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.

  3. 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.

  4. 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

Newsletter

Produktové poznámky, nie spam.

Občasné frameworky o portáloch, SaaS MVP a automatizácii.

DirectHeader logoDirectHeader

Vytvárame moderné, vysoko výkonné webové stránky pre progresívne spoločnosti.

Navigation
Contact
[email protected]

Remote Team (EU)

© 2026 DirectHeader. Všetky práva vyhradené.

Made with precision in EU