OAuth 2.0 a OIDC jsou základy moderní autentizace. Pochopte je jednou, použijete všude.
OAuth 2.0 vs OIDC¶
- OAuth 2.0 — autorizace (přístup k resources)
- OIDC — autentizace (identita uživatele) = vrstva nad OAuth 2.0
Tokeny¶
- Access Token — krátkodobý, pro API přístup
- Refresh Token — dlouhodobý, pro obnovu access tokenu
- ID Token — JWT s user info (OIDC)
Authorization Code Flow (doporučený)¶
- User klikne „Login with Google”
- Redirect na Google auth
- User se přihlásí, udělí souhlas
- Google redirectne zpět s authorization code
- Backend vymění code za tokeny
- Backend vrátí session/JWT
PKCE (pro SPA a mobile)¶
Authorization Code Flow + Proof Key for Code Exchange. Chrání proti code interception útoku. Povinné pro public clients.
JWT¶
// Header
{ “alg”: “RS256”, “typ”: “JWT” }
// Payload
{ “sub”: “user123”, “email”: “jan@example.com”, “exp”: 1707900000 }
// Signature
RSASHA256(header + payload, private_key)
Best practices¶
- Access token krátký (5-15 minut)
- Refresh token rotujte
- PKCE vždy pro SPA/mobile
- Validujte tokeny na serveru
- Neukládejte tokeny v localStorage (XSS)
- Použijte httpOnly cookies pro web
Doporučení¶
Neimplementujte OAuth/OIDC sami. Použijte Auth0, Clerk, Keycloak nebo next-auth.
oauthoidcsecurityautentizace