Čo je OAuth? „Prihlásiť sa cez Google“ a delegovaný prístup vysvetlené
OAuth je otvorený štandard, ktorý umožňuje používateľovi dať jednej aplikácii obmedzený prístup k jeho účtu v inej službe bez odovzdania hesla. Keď kliknete na „Pripojiť Kalendár Google“ a uvidíte obrazovku s otázkou „Povoliť tejto aplikácii vidieť vaše udalosti?“, je to OAuth. Aplikácia dostane token len pre to, čo ste schválili, a kedykoľvek to môžete odvolať. Ten istý mechanizmus s ďalšou vrstvou, OpenID Connect, poháňa „Prihlásiť sa cez Google“ a podobné tlačidlá.
Prečo je OAuth dôležitý pri tvorbe s AI
OAuth sa objaví v dvoch bežných situáciách, keď budujete aplikáciu:
- Sociálne prihlásenie. Chcete, aby sa používatelia mohli „prihlásiť cez Google“ (alebo Apple, Microsoft, GitHub) namiesto vytvárania ďalšieho hesla. Pozri ako pridať prihlasovanie do aplikácie.
- Pripojenie k účtom používateľov v iných službách. Vaša aplikácia potrebuje čítať kalendár používateľa, zverejňovať na jeho sociálnom účte, sťahovať súbory z jeho cloudového disku alebo synchronizovať účtovné dáta.
V oboch prípadoch vám kód môže napísať nástroj na tvorbu s AI, ale niektoré kroky môžete urobiť iba vy: vytvoriť vývojársku aplikáciu u poskytovateľa, získať client ID a client secret, zaregistrovať spätné URL a pri niektorých oprávneniach prejsť kontrolou poskytovateľa. Keď viete, ako OAuth funguje, tieto kroky — a chyby, ktoré vytvárajú — nebudú také záhadné. Širší obraz prihlasovania nájdete v čo je autentifikácia.
Každodenné prirovnanie
Pomyslite na hotelovú kartu. Pri check-ine recepcia overí, kto ste, a dá vám kartu, ktorá otvorí vašu izbu a posilňovňu — nie ostatné izby ani personálne priestory — a prestane fungovať pri odhlásení. Karta neobsahuje váš pas. Ak ju stratíte, recepcia ju zruší a vydá novú.
- Recepcia je autorizačný server (prihlasovacia stránka Google).
- Kontrola totožnosti je vaše prihlásenie do Google.
- Kľúčová karta je prístupový token.
- „Iba izba a posilňovňa“ sú rozsahy (scopes), ktoré ste schválili.
- Odhlásenie je vypršanie tokenu alebo vaše odvolanie prístupu.
Aplikácia, ktorú používate, nikdy nevidí vaše heslo do Google, iba kartu.
Ako OAuth funguje krok za krokom
Najbežnejší tok pre webové aplikácie je tok autorizačného kódu (authorization code flow). Tu je, čo sa stane, keď používateľ pripojí svoj Kalendár Google k plánovacej aplikácii:
- Kliknutie. Používateľ klikne na „Pripojiť Kalendár Google“.
- Presmerovanie k poskytovateľovi. Aplikácia pošle prehliadač na Google s client ID, rozsahmi, ktoré chce (čítanie udalostí v kalendári), a redirect URI, kam má Google používateľa vrátiť.
- Prihlásenie a súhlas. Používateľ sa prihlási do Google (ak ešte nie je) a uvidí obrazovku súhlasu so zoznamom toho, čo aplikácia žiada. Klikne na Povoliť.
- Späť s kódom. Google presmeruje prehliadač na redirect URI aplikácie s krátkodobým, jednorazovým autorizačným kódom.
- Výmena na serveri. Serverová časť aplikácie pošle tento kód spolu so svojím client secret priamo Googlu a dostane prístupový token (a často obnovovací token).
- Použitie API. Server volá API Kalendára Google s prístupovým tokenom a získa udalosti používateľa.
Spätné volanie v kroku 4 vyzerá približne takto:
https://yourapp.com/auth/google/callback?code=4/0Adeu5B...&state=x7Kq9
A odpoveď s tokenom v kroku 5 je JSON podobný tomuto:
{
"access_token": "ya29.a0Af...",
"expires_in": 3599,
"refresh_token": "1//0gL...",
"scope": "https://www.googleapis.com/auth/calendar.readonly",
"token_type": "Bearer"
}
Dôležitý návrhový bod: výmena tokenu prebieha server-to-server, takže client secret a tokeny nikdy nemusia prejsť cez prehliadač.
OAuth vs OpenID Connect vs vlastné prihlasovanie
| Na čo odpovedá | Príklad | |
|---|---|---|
| OAuth 2.0 | „Čo smie táto aplikácia robiť v mene používateľa?“ (autorizácia) | Čítať kalendár používateľa |
| OpenID Connect (OIDC) | „Kto je tento používateľ?“ (autentifikácia), postavené na OAuth | „Prihlásiť sa cez Google“ vracia overený e-mail |
| Vlastné prihlásenie | „Je toto správne heslo k tomuto účtu?“ | E-mail a heslo uložené (zahashované) vo vašej databáze |
Mnohé aplikácie ich kombinujú: prihlásenie e-mailom a heslom, plus „Prihlásiť sa cez Google“ cez OIDC, plus samostatné OAuth pripojenia k iným službám.
Kľúčové pojmy
| Pojem | Význam |
|---|---|
| Poskytovateľ / autorizačný server | Služba, do ktorej sa používateľ prihlasuje a kde udeľuje prístup — Google, Microsoft, GitHub. |
| Klient | Vaša aplikácia, zaregistrovaná u poskytovateľa. |
| Client ID | Verejný identifikátor vašej aplikácie u poskytovateľa. |
| Client secret | Súkromné heslo vašej aplikácie u poskytovateľa. Iba na serveri. |
| Rozsah (scope) | Konkrétne oprávnenie, napríklad „čítať kalendár“ alebo „vidieť e-mailovú adresu“. |
| Obrazovka súhlasu | Stránka, kde používateľ vidí a schvaľuje požadované rozsahy. |
| Redirect URI / spätná URL | Kam poskytovateľ vracia používateľa. Musí byť vopred zaregistrovaná a presne sa zhodovať. |
| Prístupový token | Krátkodobé poverenie na volanie API. |
| Obnovovací token | Dlhšie platné poverenie na získanie nových prístupových tokenov. Ukladajte ho ako heslo. |
| ID token | V OIDC podpísaný token popisujúci, kto je používateľ. |
| PKCE | Dodatočná kontrola („proof key“), ktorá zabráni zneužitiu zachyteného kódu. Odporúča sa pre všetkých klientov. |
| state | Náhodná hodnota, ktorá chráni tok pred sfalšovanými požiadavkami. |
Bežné omyly
- „OAuth je prihlasovací systém.“ Samotný OAuth udeľuje prístup; identitu rieši OpenID Connect. Použitie holého prístupového tokenu ako dôkazu, kto je používateľ, spôsobilo skutočné bezpečnostné chyby.
- „Aplikácia dostane moje heslo.“ Nikdy nedostane. V tom je celý zmysel.
- „Žiadať viac rozsahov je neškodné.“ Používatelia sú opatrnejší voči širokým žiadostiam a poskytovatelia ako Google môžu pri citlivých alebo obmedzených rozsahoch vyžadovať kontrolu aplikácie. Žiadajte iba to, čo potrebujete.
- „Klientske tajomstvo môže byť vo frontende.“ Čokoľvek v kóde prehliadača je verejné. Uchovávajte ho v serverových tajomstvách.
- „Funguje to pri testovaní, bude to fungovať v produkcii.“ Poskytovatelia často obmedzujú neoverené aplikácie — napríklad na zoznam testovacích používateľov — a spätná URL pre vašu živú doménu sa musí registrovať osobitne.
- „Tokeny platia navždy.“ Prístupové tokeny rýchlo expirujú a používatelia môžu prístup odvolať. Vaša aplikácia musí zvládnuť obe situácie.
Čo požiadať od nástroja na tvorbu s AI
- „Pridaj prihlásenie „Prihlásiť sa cez Google“ pomocou OpenID Connect s dobre udržiavanou autentifikačnou knižnicou — tok OAuth nepíš ručne.“
- „Použi tok autorizačného kódu s PKCE a over parameter
state.“ - „Načítaj client ID a client secret z premenných prostredia na serveri.“
- „Žiadaj iba rozsahy, ktoré potrebujeme: čítanie kalendára.“
- „Vypíš všetky redirect URL, ktoré musím zaregistrovať v konzole poskytovateľa, pre náhľad, publikovanú URL a moju vlastnú doménu.“
- „Ukladaj obnovovacie tokeny šifrovane v databáze a pri expirovaných alebo odvolaných tokenoch požiadaj používateľa, aby sa znova pripojil.“
- „Nech môžu používatelia integráciu odpojiť na svojej stránke nastavení.“
OAuth a Mythex
Mythex nemá vstavané prihlasovanie koncových používateľov pre aplikácie, ktoré vytvoríte; dokumentácia popisuje prístup s vlastným poskytovateľom — vyberiete si autentifikačnú knižnicu alebo hostovaného poskytovateľa, kľúče uložíte ako tajomstvá projektu a agent napíše kód. Recept na pridanie autentifikácie obsahuje štartovací prompt. OAuth stretnete aj priamo v Mythexe: prihlásiť sa môžete cez Google, pripojenie GitHubu na synchronizáciu repozitára používa OAuth GitHubu a AI klienti, ktorí sa pripájajú k Mythexu cez MCP, prechádzajú súhlasovou stránkou OAuth. Viac nájdete v čo je autentifikácia a čo je dvojfaktorová autentifikácia.
Otázky
Čo je OAuth jednoducho povedané?
OAuth je štandardný spôsob, ako používateľ umožní jednej aplikácii prístup k jeho účtu v inej službe — napríklad plánovacej aplikácii, aby čítala jeho Kalendár Google — bez odovzdania hesla. Používateľ schváli konkrétne oprávnenia a aplikácia dostane token, ktorý môže použiť iba na ne.
Je OAuth to isté ako „Prihlásiť sa cez Google“?
„Prihlásiť sa cez Google“ je postavené na OAuth 2.0 plus OpenID Connect, vrstve nad OAuth, ktorá pridáva štandardný spôsob, ako aplikácii povedať, kto používateľ je. Samotný OAuth rieši udelenie prístupu; OpenID Connect z neho robí prihlásenie.
Čo je prístupový token OAuth?
Prístupový token je poverenie, ktoré aplikácia posiela API služby, aby dokázala, že dostala prístup. Zvyčajne je krátkodobý a obmedzený na oprávnenia (rozsahy), ktoré používateľ schválil. Obnovovací token, ak sa vydá, umožní aplikácii získať nové prístupové tokeny bez opätovného pýtania sa používateľa.
Čo znamená redirect_uri_mismatch?
Znamená to, že spätná URL, ktorú vaša aplikácia poslala pri prihlasovaní, presne nezodpovedá žiadnej URL zaregistrovanej v konzole vývojára poskytovateľa. Pridajte presnú URL — vrátane https, domény, cesty a prípadnej koncovej lomky — pre každú adresu, na ktorej aplikácia beží.
Je OAuth bezpečný?
OAuth 2.0 je široko používaný a bezpečný, keď je správne implementovaný: používa sa tok autorizačného kódu s PKCE, presné presmerovacie URL, parameter state a klientske tajomstvo a tokeny zostávajú na serveri. Väčšina problémov pramení zo skratiek pri implementácii, preto sa odporúča použiť dobre udržiavanú knižnicu.