Príručky

Čo je autentifikácia? Prihlasovanie, relácie a OAuth vysvetlené

Autentifikácia je spôsob, akým aplikácia potvrdí, kto je používateľ – zvyčajne kontrolou niečoho, čo používateľ pozná (heslo), niečoho, čo má (kód poslaný na telefón alebo e-mail), alebo identity od inej dôveryhodnej služby (napríklad „Prihlásiť sa cez Google“). Keď je používateľ overený, aplikácia si ho zapamätá pomocou relácie alebo tokenu, aby sa nemusel prihlasovať na každej stránke. Rozhodnutie, čo môže tento známy používateľ robiť, je samostatný krok nazývaný autorizácia.

Prečo na tom záleží, keď stavate s AI

Pridanie prihlásenia patrí k najbežnejším požiadavkám na nástroje na tvorbu aplikácií a zároveň sa dá ľahko pokaziť nenápadne. Prihlasovacia stránka sa dá vygenerovať jednoducho. Ťažké je všetko okolo nej:

  • Sú heslá uložené bezpečne?
  • Kontroluje každá súkromná stránka a každý koncový bod API, kto sa pýta?
  • Dokáže prihlásený zákazník zobraziť dáta iného zákazníka zmenou čísla v URL?
  • Čo sa stane, keď si niekto zabudne heslo?

Aplikácia môže vyzerať úplne bezpečne a pritom zlyhávať v každom z týchto bodov. Keď rozumiete pohyblivým častiam, viete klásť správne otázky a testovať správne veci.

Každodenná analógia

Predstavte si prihlásenie do hotela.

Na recepcii ukážete doklad totožnosti. To je autentifikácia: dokázanie, kto ste. Recepčná vám potom dá kartu do izby. Táto karta je vaša relácia: počas celého pobytu sa už nemusíte preukazovať, stačí priložiť kartu.

Karta otvorí vašu izbu, fitnes a výťah na vaše poschodie – ale nie izby iných hostí ani kancelárie personálu. To je autorizácia: k čomu má vaša identita prístup. Ak kartu stratíte, hotel ju môže na recepcii deaktivovať (odvolanie relácie). Pri odchode prestane fungovať (odhlásenie alebo vypršanie).

„Prihlásiť sa cez Google“ je ako keď hotel prijme list od dôveryhodného partnera, ktorý hovorí „toto je ten, kto je“, namiesto toho, aby vašu totožnosť kontroloval sám.

Hlavné spôsoby prihlásenia

SpôsobAko fungujeVýhodyNevýhody
E-mail + hesloPoužívateľ si zvolí heslo; aplikácia uloží jeho hashZnáme, bez externej závislostiMusíte bezpečne ukladať hashe a riešiť obnovu hesla
Magic link / jednorazový kódAplikácia pošle e-mailom odkaz alebo kód, ktorý používateľa prihlásiŽiadne heslá, ktoré by sa dali ukradnúť alebo zabudnúťZávisí od doručenia e-mailu; prihlásenie je pomalšie
Prihlásenie cez sociálnu sieť (OAuth / OpenID Connect)Používateľ sa prihlási cez Google, Apple, GitHub a podobneRýchle pre používateľov; heslo neukladáte vyNastavenie u každého poskytovateľa; používatelia bez takých účtov
Hostovaná služba na prihlasovanieSlužba ako Clerk, Auth0 alebo Supabase Auth rieši registráciu, prihlásenie a obnovuMenej bezpečnostnej práce na vašej straneMesačné náklady pri väčšom objeme; ďalšia závislosť
Viacfaktorové overenie (MFA / 2FA)Druhá kontrola po prvej, napríklad kód z autentifikačnej aplikácieOveľa ťažšie sa dá prelomiťTrochu viac trenia pre používateľa

Ako sa majú ukladať heslá

Bezpečná aplikácia nikdy neukladá vaše skutočné heslo. Namiesto toho ukladá hash: výstup jednosmernej funkcie, ktorá heslo premení na pevný reťazec. Keď sa prihlasujete, aplikácia zahashuje to, čo ste napísali, a porovná výsledok s uloženým hashom.

Dva detaily robia tento postup bezpečným:

  • Soľ (salt) – náhodná hodnota pridaná ku každému heslu pred hashovaním, takže dvaja ľudia s rovnakým heslom majú rôzne hashe a predpočítané tabuľky sú bezcenné.
  • Pomalý algoritmus určený na heslá – napríklad Argon2, bcrypt alebo scrypt. Všeobecné hashe ako MD5 alebo SHA-256 sú samy o sebe príliš rýchle; útočník môže skúsiť miliardy hádaní.

Hashovanie nie je to isté ako šifrovanie. Zašifrované dáta sa dajú dešifrovať kľúčom; hash hesla je navrhnutý tak, aby sa vôbec nedal obrátiť.

Relácie vs tokeny

Po prihlásení musí aplikácia pri každej požiadavke spoznať, kto ste. Existujú dva bežné prístupy.

Relácia (cookie)Token (napr. JWT)
Čo drží prehliadačNáhodný identifikátor relácie v cookiePodpísaný token s údajmi o používateľovi a dátumom expirácie
Kde žije stav prihláseniaNa serveri, v databáze alebo úložiskuPriamo v tokene
Odhlásenie všade narazJednoduché: na serveri zmažete reláciuŤažšie: token platí, kým nevyprší, pokiaľ si neudržiavate zoznam zablokovaných
Typické použitieTradičné webové aplikácieAPI, mobilné aplikácie, služby komunikujúce medzi sebou

Pri cookie sú dôležité tri nastavenia: HttpOnly (JavaScript na stránke nemôže cookie čítať), Secure (odosiela sa len cez HTTPS) a SameSite (obmedzuje odosielanie pri požiadavkách z iných stránok). Ukladanie tokenov do localStorage prehliadača je bežné, ale vystavuje ich každému skriptu bežiacemu na stránke.

OAuth a „Prihlásiť sa cez Google“

OAuth 2.0 je štandard pre delegovanú autorizáciu: umožňuje aplikácii získať obmedzený prístup k vášmu účtu v inej službe – napríklad čítať váš Google kalendár – bez toho, aby kedy videla vaše heslo do Google. Presmerujú vás na Google, schválite konkrétne oprávnenia (nazývané scopes) a Google aplikácii dá token iba na tieto oprávnenia.

Samotný OAuth bol navrhnutý na udelenie prístupu, nie na to, aby hovoril, kto ste. OpenID Connect (OIDC) je vrstva nad OAuth 2.0, ktorá pridáva identitu – presne to používa „Prihlásiť sa cez Google“ alebo „Prihlásiť sa cez Apple“. Na nastavenie zaregistrujete aplikáciu u poskytovateľa a dostanete client ID a client secret; tajomstvo zostáva na vašom serveri.

Praktický príklad: prihlásenie do klientskeho portálu

Predstavte si portál, v ktorom klienti dizajnérskej agentúry vidia svoje projekty a faktúry.

  • Autentifikácia: klienti sa prihlasujú e-mailom a magic linkom, takže nemusia spravovať heslá. Zamestnanci agentúry sa prihlasujú cez účty Google Workspace.
  • Roly: každý používateľ má rolu – client alebo staff.
  • Pravidlá autorizácie:
AkciaKlientZamestnanec
Vidieť projekty svojej firmyÁnoÁno
Vidieť projekty iných firiemNieÁno
Nahrať súbor do projektuLen do vlastných projektovÁno
Označiť faktúru ako zaplatenúNieÁno
  • Kde sa to vynucuje: na serveri, pri každej požiadavke. Server nájde prihláseného používateľa a vráti len projekty, kde sa project.company_id zhoduje s firmou používateľa. Skryť tlačidlo „Označiť ako zaplatené“ nestačí – koncový bod sám musí odmietnuť.

Vysvetlenie bežných pojmov

PojemVýznam
Autentifikácia (AuthN)Potvrdenie, kto niekto je.
Autorizácia (AuthZ)Rozhodnutie, čo smie robiť.
Relácia (session)Aplikácia si pamätá, že ste prihlásení, medzi jednotlivými požiadavkami.
CookieMalý kúsok dát, ktorý prehliadač posiela späť na stránku pri každej požiadavke.
JWTJSON Web Token: podpísaný, kompaktný token s údajmi ako ID používateľa a dátum expirácie.
Rola / oprávnenieOznačenia ako admin alebo member, ktoré určujú prístup.
MFA / 2FAVyžadovanie druhého dôkazu, napríklad kódu z autentifikačnej aplikácie.
SSOJednotné prihlásenie: jeden účet (často firemný) pre mnoho aplikácií.
401 vs 403„Kto ste?“ (neoverený) vs „Toto nemôžete“ (nemáte autorizáciu).

Bežné chyby a omyly

  • Kontrola oprávnení len v stránke. Ak prehliadač skryje tlačidlo, ale API nekontroluje, ktokoľvek môže zavolať API priamo.
  • Dôverovanie ID z URL. /invoices/1042 musí overiť, že faktúra 1042 patrí prihlásenému používateľovi.
  • Vlastná kryptografia. Používajte známe knižnice alebo poskytovateľov; nenechajte AI vymýšľať vlastnú schému hashovania.
  • Slabá obnova hesla. Odkazy na obnovu majú byť jednorazové, rýchlo vypršať a nesmú prezradiť, či e-mail má účet.
  • Zamieňanie vášho prihlásenia s prihlásením do nástroja, ktorým stavate. Používatelia vašej aplikácie sú oddelení od vášho účtu v nástroji, ktorým ju tvoríte.
  • Žiadne obmedzenie pokusov o prihlásenie. Bez neho môžu útočníci skúšať heslá donekonečna.

Čo požiadať od nástroja na tvorbu aplikácií

  • „Pridaj registráciu a prihlásenie pomocou [známej knižnice alebo poskytovateľa]. Nepíš vlastné hashovanie hesiel.“
  • „Ukladaj heslá zahashované pomocou bcrypt alebo Argon2.“
  • „Pre reláciu použi cookie s HttpOnly a Secure.“
  • „Pridaj roly: admin a member. Vypíš každý koncový bod a ktoré roly ho smú volať.“
  • „Na serveri vynúť, aby používatelia mohli čítať a upravovať len svoje vlastné záznamy. Potom mi ukáž, ako si to overil.“
  • „Pridaj obnovu hesla s jednorazovými odkazmi, ktoré vypršia za hodinu.“
  • „Obmedz počet pokusov o prihlásenie.“

Potom to otestujte sami: vytvorte dva účty a skúste sa dostať k dátam jedného, keď ste prihlásení ako druhý. Sprievodca pridaním prihlásenia a bezpečnostný kontrolný zoznam idú ďalej.

Autentifikácia v Mythex

Mythex neposkytuje vstavaný produkt na autentifikáciu používateľov vašej aplikácie; zvolíte prístup – e-mail a heslo uložené v databáze vášho projektu alebo SDK hostovanej služby – a požiadate agenta, aby ho pridal. Kľúče poskytovateľa idú do tajomstiev projektu, nie do chatu. Toto je oddelené od toho, ako sa prihlasujete do samotného Mythex. Recept v dokumentácii o pridaní prihlásenia do aplikácie obsahuje štartovací prompt, ktorý môžete upraviť, a čo je API vysvetľuje, kde tieto kontroly na serveri žijú.

Otázky

Aký je rozdiel medzi autentifikáciou a autorizáciou?

Autentifikácia overuje, kto ste, napríklad kontrolou hesla. Autorizácia rozhoduje, čo smiete robiť, keď ste už známi – napríklad či smiete vidieť administračnú stránku alebo upraviť cudziu rezerváciu. Aplikácie potrebujú obe.

Čo je OAuth?

OAuth 2.0 je štandard, ktorý umožňuje aplikácii získať obmedzený prístup k vášmu účtu v inej službe bez toho, aby videla vaše heslo. „Prihlásiť sa cez Google“ používa OpenID Connect, identitnú vrstvu postavenú na OAuth 2.0, takže aplikácia od Google zistí, kto ste.

Má moja aplikácia ukladať heslá?

Nikdy v čitateľnej podobe. Ak používate prihlásenie e-mailom a heslom, heslá sa musia ukladať ako hash so soľou, vytvorený pomalým algoritmom určeným pre heslá, napríklad Argon2 alebo bcrypt. Mnohé aplikácie tomu predídu tak, že použijú hostovanú službu na prihlasovanie, prihlásenie cez sociálnu sieť alebo jednorazové odkazy do e-mailu.

Relácie alebo tokeny – čo má moja aplikácia použiť?

Fungujú obe. Relácia ukladá stav prihlásenia na serveri a prehliadaču dá náhodný identifikátor v cookie, ktorý sa ľahko odvolá. Token, ako JWT, nesie podpísané informácie sám o sebe, čo sa hodí pre API a mobilné klienty, ale ťažšie sa zruší pred vypršaním. Pre typickú webovú aplikáciu sú cookie relácie rozumná predvoľba.

Mythex · Pricing · Vytvorte čokoľvek s AI · Šablóny webov a aplikácií · Mythex v porovnaní · Slovník pojmov tvorby aplikácií s AI · Bezplatné nástroje na tvorbu aplikácií s AI · English

English አማርኛ العربية Български বাংলা Bosanski Català Čeština Dansk Deutsch Ελληνικά Español Español (España) Eesti فارسی Suomi Français Français (Canada) ગુજરાતી हिन्दी Hrvatski Magyar Հայերեն Bahasa Indonesia Íslenska Italiano 日本語 ქართული Қазақ тілі ಕನ್ನಡ 한국어 Lietuvių Latviešu Македонски മലയാളം Монгол मराठी Bahasa Melayu မြန်မာ Norsk bokmål Nederlands ਪੰਜਾਬੀ Polski Português (Brasil) Português (Portugal) Română Русский Slovenščina Soomaali Shqip Srpski Svenska Kiswahili தமிழ் తెలుగు ไทย Tagalog Türkçe Українська اردو Tiếng Việt 简体中文 繁體中文(香港) 繁體中文(台灣)