</>
⌕
Mid #auth#session#jwt#oauth2#sso

Xác thực: session, JWT, OAuth2 và SSO khác nhau thế nào?

⚡ Trả lời nhanh

Session lưu trạng thái ở server, client giữ session id trong cookie: dễ thu hồi nhưng cần kho chia sẻ. JWT là token tự chứa đã ký, server không lưu trạng thái nhưng khó thu hồi. OAuth2 là giao thức uỷ quyền truy cập; OpenID Connect thêm xác thực danh tính, nền tảng của SSO.

SessionJWT
Trạng tháiserver (Redis/DB)trong token
Thu hồixoá sessionkhó: chờ hết hạn hoặc blocklist
Scalecần store chungstateless
Rủi roCSRF nếu dùng cookielộ token, lưu ở localStorage dễ bị XSS
Authorization Code + PKCE:
App -> redirect IdP login -> IdP trả code -> App đổi code lấy access_token (+ id_token)
  • Access token sống ngắn (vài phút), refresh token dài hơn và xoay vòng (rotation).
  • Cookie HttpOnly; Secure; SameSite an toàn hơn localStorage cho token trình duyệt.
  • SSO: một IdP (Okta, Keycloak, Google) xác thực một lần cho nhiều ứng dụng (OIDC hoặc SAML).
🃏 Ôn bằng flashcard