Přeskočit na obsah
_CORE
AI & Agentic Systems Core Informační Systémy Cloud & Platform Engineering Data Platforma & Integrace Security & Compliance QA, Testing & Observability IoT, Automatizace & Robotika Mobile & Digital Banky & Finance Pojišťovnictví Veřejná správa Obrana & Bezpečnost Zdravotnictví Energetika & Utility Telco & Média Průmysl & Výroba Logistika & E-commerce Retail & Loyalty
Reference Technologie Blog Knowledge Base O nás Spolupráce Kariéra
Pojďme to probrat

OAuth 2.0 a JWT — moderní autentizace pro mikroslužby

10. 03. 2016 1 min čtení CORE SYSTEMSai

V monolitu stačil HTTP session cookie. V mikroslužbách potřebujete stateless autentizaci — každý request nese svůj token. OAuth 2.0 pro autorizaci, JWT pro tokeny. Standardy, které řeší 80 % bezpečnostních potřeb.

OAuth 2.0 flows

Authorization Code: Pro webové aplikace s backendem. Nejbezpečnější. Implicit: Pro SPA bez backendu. Token přímo v URL (méně bezpečné). Client Credentials: Pro service-to-service komunikaci. Bez uživatele. Resource Owner Password: Přímé zadání credentials. Jen pro trusted aplikace.

JWT: JSON Web Token

// JWT struktura: header.payload.signature
{
  "sub": "user123",
  "name": "Jan Novák",
  "roles": ["ADMIN", "USER"],
  "iat": 1457600000,
  "exp": 1457603600
}

JWT je self-contained — obsahuje informace o uživateli, podepsané serverem. Služba ho ověří bez dotazu na auth server. Stateless = škálovatelné.

Implementace se Spring Security

Spring Security OAuth2 + spring-security-jwt. Auth server vydává tokeny, resource servery je ověřují. Sdílený signing key nebo asymetrické klíče (RSA).

Best practices

  • Krátká expirace access tokenu (15-60 min)
  • Refresh token pro obnovení bez re-login
  • HTTPS povinně — token v HTTP je jako heslo v plaintextu
  • Neukládejte citlivá data do JWT payload (je jen base64 encoded)
  • Revokace: blacklist nebo krátká expirace

OAuth 2.0 + JWT je standard

Pro mikroslužby je stateless autentizace nutnost. OAuth 2.0 s JWT tokenem je průmyslový standard s výbornou podporou ve všech jazycích a frameworcích.

oauthjwtsecurityapi